粥粥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日

悬赏问题

  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥15 复杂网络,变滞后传递熵,FDA