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日

悬赏问题

  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用