解题思路:用函数翻转一下 再判断 用数组存符合的数字
注意事项:最后一项没逗号 这个用数组和记录符合题目数字的个数解决
参考代码:
#include<bits/stdc++.h>
using namespace std;
int f1(int n)//数字翻转 123变321
{
int sum =0;
while(n)
{
sum = sum * 10 + n%10;
n/=10;
}
return sum;
}
int main()
{
int n,m,ans = 0,flag;
int a[10000];
cin >> n >> m;
for(int i = n ; i <=m ;i++)
{
flag = 1;//标记
for(int j = 2 ; j <= sqrt(i);j++)//这个开平方减少时间复杂度
{
if(i % j == 0)//判断是否为素数
{
flag = 0;
break;
}
}
if(flag == 1)//判断该数为素数了
{
int k = f1(i);//得到翻转后的数
for(int l = 2; l <= sqrt(k);l++)//再进行判断
{
if(k % l == 0)
{
flag = 0;
break;
}
}
if(flag == 1)
{
a[ans++] = i;//将该数存入数组 ans记录个数
}
}
}
if(ans == 0) cout << "No";//为0时候 no
else
{
for(int i = 0 ;i < ans -1 ;i++)//前n-1个有逗号
printf("%d,",a[i]);
cout << a[ans-1];//输出最后一个
}
return 0;
}
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复