#include <iostream>
#include <math.h>
using namespace std;
bool is_prime(long long n) {
bool prime = true;
if ( n < 2 )
return false;
long long s = sqrt(n);
long long i = 2;
while ( prime && i <= s ) {
if ( n % i == 0 )
prime = false;
i++;
}
return prime;
}
int main(int argc, const char * argv[]) {
long long n, n1, n2;
cin >> n;
bool secondary = false;
if ( n % 10 == 0 )
cout << "NIE";
string s = to_string(n);
string s1, s2;
long l = s.length();
long l1, l2;
l1 = 1;
while ( l1 < l && !secondary ) {
l2 = l - l1;
if ( s[l1] == '0' ) {
l1++;
} else {
s1 = s.substr(0, l1);
s2 = s.substr(l1, l2);
n1 = stoll(s1);
n2 = stoll(s2);
if ( n1 < n2 )
secondary = is_prime(n1) && is_prime(n2);
else
secondary = is_prime(n2) && is_prime(n1);
l1++;
}
}
if ( secondary )
cout << "TAK";
else
cout << "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 50 51 52 53 54 55 | #include <iostream> #include <math.h> using namespace std; bool is_prime(long long n) { bool prime = true; if ( n < 2 ) return false; long long s = sqrt(n); long long i = 2; while ( prime && i <= s ) { if ( n % i == 0 ) prime = false; i++; } return prime; } int main(int argc, const char * argv[]) { long long n, n1, n2; cin >> n; bool secondary = false; if ( n % 10 == 0 ) cout << "NIE"; string s = to_string(n); string s1, s2; long l = s.length(); long l1, l2; l1 = 1; while ( l1 < l && !secondary ) { l2 = l - l1; if ( s[l1] == '0' ) { l1++; } else { s1 = s.substr(0, l1); s2 = s.substr(l1, l2); n1 = stoll(s1); n2 = stoll(s2); if ( n1 < n2 ) secondary = is_prime(n1) && is_prime(n2); else secondary = is_prime(n2) && is_prime(n1); l1++; } } if ( secondary ) cout << "TAK"; else cout << "NIE"; return 0; } |
English