#include <iostream> #include <stdio.h> #include <cstdlib> using namespace std; bool checkPrime(int number); int main() { string sNumber; cin >> sNumber; for(int i = 1 ; i < sNumber.length(); i++) { if(sNumber.c_str()[i] != '0') { unsigned long long i1 = strtoul(sNumber.substr(0, i).c_str(), NULL, 10); unsigned long long i2 = strtoul(sNumber.substr(i, sNumber.length() - 1).c_str(), NULL, 10); if(checkPrime(i1) && checkPrime(i2)) { cout << "TAK"; return 0; } } } cout << "NIE"; return 0; } bool checkPrime(int number) { if(number == 1) return false; if(number == 2) return true; if(number%2 == 0) return false; int i = 3; while(i < number) { if(number%i == 0) return false; i++; } return true; }
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 | #include <iostream> #include <stdio.h> #include <cstdlib> using namespace std; bool checkPrime(int number); int main() { string sNumber; cin >> sNumber; for(int i = 1 ; i < sNumber.length(); i++) { if(sNumber.c_str()[i] != '0') { unsigned long long i1 = strtoul(sNumber.substr(0, i).c_str(), NULL, 10); unsigned long long i2 = strtoul(sNumber.substr(i, sNumber.length() - 1).c_str(), NULL, 10); if(checkPrime(i1) && checkPrime(i2)) { cout << "TAK"; return 0; } } } cout << "NIE"; return 0; } bool checkPrime(int number) { if(number == 1) return false; if(number == 2) return true; if(number%2 == 0) return false; int i = 3; while(i < number) { if(number%i == 0) return false; i++; } return true; } |