/*
n jest sklejeniem 2 liczb pierwszych
limity:
1<=n<=1e13<2^44
*/
#include <stdio.h>
int isprime(long long a)
{
long long q;
if (a<2) return 0;
if (a>2 && a%2==0) return 0;
for (q=3; q*q<=a; q+=2) if (a%q==0) return 0;
return 1;
}
int main()
{
long long n, a, b, q;
scanf("%lld", &n);
for (q=1, a=n/10, b=n%10; a>0; q*=10, a/=10, b=n%(10*q))
if (b>=q)
{
if (isprime(a) && isprime(b))
{
puts("TAK");
return 0;
}
if (b%2==0 || b%5==0) break;
}
puts("NIE");
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 | /* n jest sklejeniem 2 liczb pierwszych limity: 1<=n<=1e13<2^44 */ #include <stdio.h> int isprime(long long a) { long long q; if (a<2) return 0; if (a>2 && a%2==0) return 0; for (q=3; q*q<=a; q+=2) if (a%q==0) return 0; return 1; } int main() { long long n, a, b, q; scanf("%lld", &n); for (q=1, a=n/10, b=n%10; a>0; q*=10, a/=10, b=n%(10*q)) if (b>=q) { if (isprime(a) && isprime(b)) { puts("TAK"); return 0; } if (b%2==0 || b%5==0) break; } puts("NIE"); return 0; } |
English