Bài toán. Số Palidrome là số đối xứng, nghĩa là đọc từ trái sang phải hay từ phải sang trái ta đều được 1 số. Ví dụ: 11, 121, 1331, …. Nhập 2 số nguyên dương m, n. Liệt kê dãy số vừa là số nguyên tố vừa là số Palidrome trong đoạn [m, n]. Ví dụ:
PALIDROM.INP |
PALIDROM.OUT |
100 200 |
101 131 151 181 191 |
Code tham khảo:
#include <iostream>
#include <cmath>
using namespace std;
int palidrom(int n) {
int x = n;
int d = 0;
while (n > 0) {
d = d*10 + n%10;
n /= 10;
}
if (x == d) return 1;
else return 0;
}
int nguyenTo(int n) {
if (n < 2) return 0;
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) return 0;
}
return 1;
}
int main () {
freopen("PALIDROM.INP","r",stdin);
freopen("PALIDROM.OUT","w",stdout);
long m, n;
cin >> m >> n;
for (int i = m; i < n; i++) {
if (palidrom(i) && nguyenTo(i))
cout << i << " ";
}
return 0;
}