#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; } |
English