#include <iostream>
bool is_prime(long long x) {
if (x < 2)
return false;
if (!(x % 2))
return x == 2;
for (int i = 3; i * i <= x; i += 2)
if (!(x % i))
return false;
return true;
}
int main() {
long long n;
std::cin >> n;
const std::string &n_str = std::to_string(n);
unsigned long n_len = n_str.length();
for (unsigned i = 1; i < n_len; i++) {
const std::string &left = n_str.substr(0, i);
const std::string &right = n_str.substr(i, n_len);
if (left[0] == '0' || right[0] == '0')
continue;
if (is_prime(std::stoll(left)) && is_prime(std::stoll(right))) {
std::cout << "TAK" << std::endl;
return 0;
}
}
std::cout << "NIE" << std::endl;
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 | #include <iostream> bool is_prime(long long x) { if (x < 2) return false; if (!(x % 2)) return x == 2; for (int i = 3; i * i <= x; i += 2) if (!(x % i)) return false; return true; } int main() { long long n; std::cin >> n; const std::string &n_str = std::to_string(n); unsigned long n_len = n_str.length(); for (unsigned i = 1; i < n_len; i++) { const std::string &left = n_str.substr(0, i); const std::string &right = n_str.substr(i, n_len); if (left[0] == '0' || right[0] == '0') continue; if (is_prime(std::stoll(left)) && is_prime(std::stoll(right))) { std::cout << "TAK" << std::endl; return 0; } } std::cout << "NIE" << std::endl; return 0; } |
English