题目:
1193是个素数,对它循环移位后发现:
1931, 9311, 3119也都是素数,这样特征的数叫:循环素数。
你能找出具有这样特征的5位数的循环素数吗?
当然,这样的数字可能有很多,请写出其中最大的一个。
注意:答案是个5位数,不要填写任何多余的内容。
思路:
基础题没多大难度,看代码注释即可
代码:
#include <stdio.h>
#include <math.h>
int fun(int n)
{
int m = n % 10;
n = n / 10;
return m * 10000 + n;
}
int sus(int n)
{
for (int i = 2; i < sqrt(n); i++)
{
if (n%i == 0)
{
return 0;
}
}
return 1;
}
int main()
{
int n, count = 0;
for (int i = 99999; i > 9999; i--) //找最大,从大到小查找
{
n = i;
count = 0; //记录次数,5次都为素数时退出循环
for (int j = 0; j < 5; j++)
{
if (sus(n)) //判断是否为素数
{
n = fun(n); //循环
count++;
}
}
if (count == 5) //输出并退出
{
printf("%d\n", i);
break;
}
}
return 0;
}
如果感觉这篇文章对你有帮助的话,不妨点一个赞,十分感谢。
printf(“点个赞吧!”);
cout<<“点个赞吧!”;
System.out.println(“点个赞吧!”);