From 2a7bc10f6c011d19fb3b0e73068f7e1a9c30ace0 Mon Sep 17 00:00:00 2001 From: Raphael McSinyx Date: Sat, 8 Oct 2016 09:56:43 +0700 Subject: Initial commit --- NTU/smaca.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 NTU/smaca.c (limited to 'NTU/smaca.c') diff --git a/NTU/smaca.c b/NTU/smaca.c new file mode 100644 index 0000000..711040a --- /dev/null +++ b/NTU/smaca.c @@ -0,0 +1,61 @@ +#include +#include +#include + +long gcd(long a, long b) +{ + long c; + while (b) { + c = a % b; + a = b; + b = c; + } + return a; +} + +int main() +{ + char m, n, i, j, l, val0 = 0, *val; + long *k, *h, x, g; + + scanf("%hhd %hhd", &m, &n); + + val = malloc(n); + for (i = 0; i < n; i++) + val[i] = 1; + + k = malloc(m * 4); + for (i = 0; i < m; i++) + scanf("%ld", &k[i]); + + h = malloc(m * 4); + for (i = 0; i < n; i++) { + memcpy(h, k, m * 4); + + for (j = 0; j < m; j++) { + scanf("%ld", &x); + for (l = 0; l < m && x > 1; l++) { + g = gcd(h[l], x); + h[l] /= g; + x /= g; + } + if (x > 1) { + val[i] = 0; + for (j++; j < m; j++) + scanf("%ld", &x); + break; + } + } + + if (val[i]) + val0++; + } + + printf("%hhd\n", val0); + for (i = 0; i < n; i++) + if (val[i]) + printf("%hhd ", i + 1); + puts("\b"); + + return 0; +} -- cgit 1.4.1