1193是个素数,对它循环移位后发现:
1931,9311,3119也都是素数,这样特征的数叫:循环素数。
你能找出具有这样特征的5位数的循环素数吗?
当然,这样的数字可能有很多,请写出其中最大的一个。
注意:答案是个5位数,不要填写任何多余的内容。
#include<iostream>
using namespace std;
bool isPrime(int number);
int max(int result[],int count);
int main() {
int time ;
int a, b, c, d, e;
int result[100];
int number[5];
int cycleNumber[5];
int count=0 ;
for (int i = 10000; i < 99999;i++) {
time = 0;
number[0]=a = i % 10;
number[1]=b = (i / 10) % 10;
number[2]=c = (i / 100) % 10;
number[3]=d = (i / 1000) % 10;
number[4]=e = i / 10000;
cycleNumber[0] = number[4] * 10000 + number[3] * 1000 + number[2] * 100 + number[1] * 10 + number[0];
cycleNumber[1] = number[3] * 10000 + number[2] * 1000 + number[1] * 100 + number[0] * 10 + number[4];
cycleNumber[2] = number[2] * 10000 + number[1] * 1000 + number[0] * 100 + number[4] * 10 + number[3];
cycleNumber[3] = number[1] * 10000 + number[0] * 1000 + number[4] * 100 + number[3] * 10 + number[2];
cycleNumber[4] = number[0] * 10000 + number[4] * 1000 + number[3] * 100 + number[2] * 10 + number[1];
for (int j = 0; j < 5; j++) {
if (isPrime(cycleNumber[j])) {
time++;
}
}
if (time == 5) {
result[count] = cycleNumber[0];
count++;
}
}
cout << max(result,count)<<endl;
system("pause");
return 0;
}
bool isPrime(int number) {
if (number==2) {
return true;
}
for (int i = 2; i < number;i++) {
if (number%i==0) {
return false;
}
}
return true;
}
int max(int result[],int count) {
int max = 0;
for (int i = 0; i < count;i++) {
if (max < result[i]) {
max = result[i];
}
}
return max;
}