回文素数编程
- 提问者网友:抽煙菂渘情少年
- 2021-06-06 04:38
- 五星知识达人网友:拜訪者
- 2021-06-06 05:05
#include <stdlib.h>
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int num) {
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0)
return false;
}
return true;
}
//Create a function that judges if a number is a palindrome
bool isPalindrome(int num) {
int n = 1, chushu = 10;
while (num / chushu != 0) {
chushu *= 10;
n++;
} //Find how large is a number
int division = (int) pow(10.0, n - 1);
//Judge a number if it's length is even
if (n % 2 == 0) {
for (int i = 0; i < n / 2; i++) {
int first = num / division; //Get the first number of the even-length number
int last = num % 10; //Get the last number of the even-lengthnumber
if (first != last) {
return false;
}
num = (int) ((num - first * division) / 10);
division /= 10;
}
return true;
}
//Judge a number if it's length is odd
else {
for (int i = 0; i < (n - 1) / 2; i++) {
int first = num / division;
int last = num % 10;
if (first != last) {
return false;
}
num = ((num - first * division) / 10);
division /= 10;
}
return true;
}
}
int main(int argc, char** argv) {
int Min, Max;
cin >> Min >> Max; //Input to determine the range
for (int num = Min; num <= Max; num++) {
//Call the two functions
if ((isPrime(num)) && (isPalindrome(num))) {
cout << num << endl;
}
num++;
}
return (EXIT_SUCCESS);
}
- 1楼网友:时间的尘埃
- 2021-06-06 06:21