虾饺爱下棋 2022-10-31 22:33 采纳率: 100%
浏览 16
已结题

c语言中素数的输出问题

问题遇到的现象和发生背景

dotcpp的习题
计算n以内的所有素数和
编写程序,计算输入的n以内的所有素数之和。
输入格式: "%d"
输出格式:"sum=%d\n"

用代码块功能插入代码,请勿粘贴截图

#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int sum=0,x,i;
int flag=0; //素数为1

for(x=2;x<=n;x++)
{
    flag=0;
    if(x==2)
    {
        flag=1;
    }
    for(i=2;i<x;i++)
    {
        if(x%i==0)
        {
            break;
        }
        else if(x%i!=0)
        {
            flag=1;
            break;
        }    
    }
    if(flag==1)
    {
        sum+=x;
    }
}
printf("sum=%d\n",sum);
return 0;

}

运行结果及报错内容

运行错误,但不清楚为什么?

我的解答思路和尝试过的方法

调试程序的时候在n=10时该程序会把9算成素数,但我不清楚为什么,求解?
求原因。

  • 写回答

4条回答 默认 最新

  • 语言-逆行者 2022-10-31 22:52
    关注
    //判断是否为素数
    #include<stdio.h>
    int main()
    {
        int i,x;
        scanf("%d",&x);
        if(x==2) puts("yes!");
        if(x>2)
        {
            for(i=2;i<x;i++)
                if(x%i==0)
                {
                    puts("no!");
                    break;//一旦判断不是,跳出循环
                }
            if(i==x) puts("yes!");//如果是的话,for循环一定执行到了i=x
        }
        else puts("no!");
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?