diff options
Diffstat (limited to 'NTU/root.c')
-rw-r--r-- | NTU/root.c | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/NTU/root.c b/NTU/root.c deleted file mode 100644 index 01b9b30..0000000 --- a/NTU/root.c +++ /dev/null @@ -1,37 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <math.h> - -int cmp(const void *x, const void *y) -{ - return *(long *) x - *(long *) y; -} - -int main() -{ - short i; - long a[31622]; /* square root of 1 billion */ - for (i = 0; i < 31622; i++) { - a[i] = i + 1; - a[i] *= a[i]; - } - - short t; - scanf("%hd", &t); - - long *n = malloc(t * sizeof(long)); - for (i = 0; i < t; i++) - scanf("%ld", &n[i]); - - long foo; - for (i = 0; i < t; i++) { - foo = (long) sqrt(n[i]); - foo *= foo; - foo = (long *) bsearch(&foo, a, 31622, 4, cmp) - a; - while ((foo > 0) && (n[i] % a[foo])) - foo--; - printf("%hd %ld\n", foo + 1, n[i] / a[foo]); - } - - return 0; -} |