1193是个素数,对它循环移位后发现:
1931,9311,3119也都是素数,这样特征的数叫:循环素数。
你能找出具有这样特征的5位数的循环素数吗?
当然,这样的数字可能有很多,请写出其中最大的一个。
注意:答案是个5位数,不要填写任何多余的内容。
答案
99371
代码
#include <iostream>
#include <cmath>
#include <string>
#include <windows.h>
#include <stack>
#include <vector>
#include <iomanip>
#include <stack>
#include <set>
#include <map>
#include <cstdio>
using namespace std;
bool isprime(int n)
{
bool ret =true;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
ret=false;
break;
}
}
return ret;
}
int getnextfor5(int n)
{
int a=n%10;//取出最后一位;
int b=n/10;//取出前面四位
return a*10000+b;
}
int main()
{
int i=99999;
bool k;
while(true)
{
k=true;
int next=i;
for(int i=0;i<5;i++)
{
if(next>9999 && isprime(next))
{
next=getnextfor5(next);
}
else
{
k=false;
true;
}
}
if(k==true)
{
cout<<i<<endl;
break;
}
i--;
}
return 0;
}