#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> int isPrime(long long int n) { if (n < 4) return 1; if (n%2==0) return 0; long long int i=3; long long int end = (long long int)(sqrt(n)+1); for (; i<end; i+=2) { if (n%i == 0) return 0; } return 1; } int main() { long long l,r; char ns[16],ls[16],rs[16]; int s,i; scanf("%s", ns); s = strnlen(ns, 16); for (i=1; i<s; ++i) { memcpy(ls,ns,i); memcpy(rs,ns+i,s-i); ls[i] = '\0'; rs[s-i] = '\0'; if (ls[0] == '0' || rs[0] == '0') continue; l = atoll(ls); r = atoll(rs); if (isPrime(l) && isPrime(r)) { printf("TAK\n"); return 0; } } printf("NIE\n"); return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> int isPrime(long long int n) { if (n < 4) return 1; if (n%2==0) return 0; long long int i=3; long long int end = (long long int)(sqrt(n)+1); for (; i<end; i+=2) { if (n%i == 0) return 0; } return 1; } int main() { long long l,r; char ns[16],ls[16],rs[16]; int s,i; scanf("%s", ns); s = strnlen(ns, 16); for (i=1; i<s; ++i) { memcpy(ls,ns,i); memcpy(rs,ns+i,s-i); ls[i] = '\0'; rs[s-i] = '\0'; if (ls[0] == '0' || rs[0] == '0') continue; l = atoll(ls); r = atoll(rs); if (isPrime(l) && isPrime(r)) { printf("TAK\n"); return 0; } } printf("NIE\n"); return 0; } |