/* 函数06:超级素数
超级素数的定义:
一个素数,依次从最低位去掉一位,两位……
若得到的都是素数,且各数字不为0,则称为超级素数。
编写程序求a~b之间超级素数的个数。
a,b由键盘输入
比如:237,23 ,2 都是素数,所以237是超级素数*/
#include<iostream>
#include<cmath>
using namespace std;
bool IsPrime(long);
bool IsSuperPrime(long);
int main()
{ long i,j,k;
int a,b,n=0;
cin>>a>>b;
for(i=a;i<=b;i=i+1)
if(IsSuperPrime(i))
{ n++;
if(n%5!=0) cout<<i<<",";
else cout<<i<<endl;
}
}
bool IsPrime(long i)
{
if(i==1)
return false;
int j;
for(j=2;j<i/2+i;j++)
{if(i%j==0)
return false;}
return true;
}
bool IsSuperPrime(long i)
{
while(i>0)
{
if(!IsPrime(i))
return false;
if(i%10==0)
return false;
i=i/10;
}
return true;
}
这个程序为什么没输出呢?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 墨色染夕 若水三千 2022-01-12 13:41关注
/* 函数06:超级素数 超级素数的定义: 一个素数,依次从最低位去掉一位,两位…… 若得到的都是素数,且各数字不为0,则称为超级素数。 编写程序求a~b之间超级素数的个数。 a,b由键盘输入 比如:237,23 ,2 都是素数,所以237是超级素数*/ #include<iostream> #include<cmath> using namespace std; bool IsPrime(long); bool IsSuperPrime(long); int main() { long i; int a, b, n = 0; cin >> a >> b; for (i = a; i <= b; i = i + 1) if (IsSuperPrime(i)) { n++; if (n % 5 != 0) cout << i << ","; else cout << i << endl; } } bool IsPrime(long i) { if (i == 1) return true; int j; for (j = 2; j<i / 2 + 1; j++) { if (i%j == 0) return false; } return true; } bool IsSuperPrime(long i) { while (i>0) { if (IsPrime(i)) { if (i % 10 == 0) return false; i = i / 10; } else return false; } return true; } //237不是超级素数,他是3的倍数
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 python的qt5界面
- ¥15 无线电能传输系统MATLAB仿真问题
- ¥50 如何用脚本实现输入法的热键设置
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100