粥粥528 2022-01-12 12:54 采纳率: 84%
浏览 42
已结题

这个程序为什么没输出呢?

/* 函数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;
}



  • 写回答

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的倍数
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月9日
  • 已采纳回答 5月1日
  • 创建了问题 1月12日

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100