#include <stdio.h> //--------------------------------------- char S[15], T[15]; //--------------------------------------- void str(char str[], int a, int b) { int i, j=0; for(i=a; i<=b; i++) T[j++]=str[i]; T[j]=0; return; } long long strToInt(char str[]) { int i; long long n=0LL; for(i=0; str[i]!=0; i++) n=n*10+str[i]-48; return n; } char isprime(long long p) { if(p==1) return 0; if(p==2) return 1; if(!(p&1)) return 0; int i=3; while(1LL*i*i<=p) { if(!(p%i)) return 0; i+=2; } return 1; } //--------------------------------------- int check() { int i, k=0; for(i=0; S[i]!=0; i++) k++; if(S[i-1]=='0' || S[i-1]=='4' || S[i-1]=='6' || S[i-1]=='8') return 0; if(S[i-1]=='2' || S[i-1]=='5') { str(S, 0, k-2); if(isprime(strToInt(T))) return 1; else return 0; } for(i=0; i<k-1; i++) { str(S, 0, i); if(isprime(strToInt(T))) { str(S, i+1, k-1); if(T[0]!='0' && isprime(strToInt(T))) return 1; } } return 0; } //--------------------------------------- int main(void) { gets(S); if(check()) puts("TAK"); else 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 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include <stdio.h> //--------------------------------------- char S[15], T[15]; //--------------------------------------- void str(char str[], int a, int b) { int i, j=0; for(i=a; i<=b; i++) T[j++]=str[i]; T[j]=0; return; } long long strToInt(char str[]) { int i; long long n=0LL; for(i=0; str[i]!=0; i++) n=n*10+str[i]-48; return n; } char isprime(long long p) { if(p==1) return 0; if(p==2) return 1; if(!(p&1)) return 0; int i=3; while(1LL*i*i<=p) { if(!(p%i)) return 0; i+=2; } return 1; } //--------------------------------------- int check() { int i, k=0; for(i=0; S[i]!=0; i++) k++; if(S[i-1]=='0' || S[i-1]=='4' || S[i-1]=='6' || S[i-1]=='8') return 0; if(S[i-1]=='2' || S[i-1]=='5') { str(S, 0, k-2); if(isprime(strToInt(T))) return 1; else return 0; } for(i=0; i<k-1; i++) { str(S, 0, i); if(isprime(strToInt(T))) { str(S, i+1, k-1); if(T[0]!='0' && isprime(strToInt(T))) return 1; } } return 0; } //--------------------------------------- int main(void) { gets(S); if(check()) puts("TAK"); else puts("NIE"); return 0; } //--------------------------------------- |