Bài toán: Cho số nguyên dương N. Người ta có thể cắt lần lượt các chữ số của N từ phải sang trái để thu được số N mới.
Hãy tìm số N mới là số nguyên tố lớn nhất. Biết phải cắt ít nhất 1 số. Nếu không có ghi ra -1.
Ví dụ: N = 1124 → N = 11.
Code tham khảo:
#include <iostream>
using namespace std;
bool snt (int64_t n) {
if (n <= 1) {
return false;
}
if (n == 2 || n == 3) {
return true;
}
int i = 5;
while (i * i <= n) {
if (n % i == 0 || n % (i+2) == 0)
return false;
i++;
}
return true;
}
int main() {
freopen("NUMBERC.INP","r",stdin);
freopen("NUMBERC.OUT","w",stdout);
int64_t n;
cin >> n;
while (n / 10 > 0) {
n /= 10;
if (snt(n)) {
cout << n;
break;
}
}
return 0;
}