lx_1880026 2022-09-30 13:41 采纳率: 60%
浏览 22
已结题

输出素数问题一直错误,如何解决?(语言-c++)

输出连续素数:
题目描述
编写程序,将大于整数m且紧靠m的k个素数输出(k小于10)。

关于输入
输入为一行,包括两个整数,第一个为整数m,第二个为个数k

关于输出
输出为一行,即满足条件的k个素数

为啥输出不了

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int m,k,c=0,b;
    cin>>m>>k;
b=(int)sqrt(m);   //若m不是素数,则m必含比其平方数小的因子
while(c<k)
{
    bool su=1;
    for(int i=0;i<b;i++)       //判断是否是素数
    {
        if(m%i==0)
        {
            su=0;
            break;
        }
    }
    if(su)
    {
        if(su)
        {
            if(c==1)cout<<m;
            else cout<<" "<<m<<endl;
        }
    }
    m++;
}
    return 0;
}


  • 写回答

2条回答 默认 最新

  • 於黾 2022-09-30 14:01
    关注

    你这代码问题多了
    1.i不能等于0,除以0会报错,1也不对,任何数除以1都能除尽,i要从2开始啊
    2.b算的太早了,应该放到循环里面来算,是紧靠m的连续k个素数,那你要对m+k开方而不是对m开方
    举个例子,从8开始,连续输出3个素数,你如果只试到根号8就结束了,就会认为9是素数,那能对才怪
    3.为什么if(su)里面还要再嵌套个if(su),这是啥写法
    4.endl是换行符啊,人家要求你输出一行,删掉

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月8日
  • 已采纳回答 9月30日
  • 创建了问题 9月30日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)