nobugdebug 2023-02-16 15:25 采纳率: 90.6%
浏览 35
已结题

c语言。输出1~100间的素数,并对他们求和。

c语言。输出1~100间的素数,并对他们求和。

以下代码有误,该如何改正?请详细解答。谢谢。

#include <stdio.h>
int IsPrime(int n);

int main()
{
    int i,sum = 0;
    for(i = 1;i <= 100;i++)     
    {
        if(IsPrime(i))
        {
            printf("%d\n",i);
            sum += i;
        }
    }
    printf("sum of prime numbers:%d\n",sum);
    return 0;
}
int IsPrime(int n)
{
    int i,flag;
    if(1 == n)
        flag = 0;       //1不是素数,flag = 0。
    else if(2 == n)
        flag = 1;       //2是素数,flag = 1。                     //考虑1、2这两个素数
    else
    {
        flag = 1;
        for(i = 2;i < n;i++)                  
        {   
            if(n%i==0)
                flag = 0;
            break;
        }
    }
    return flag;
}


  • 写回答

2条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-02-16 15:39
    关注
    • 素数判断,那边遇到能整除的,设置flag = 0,并退出循环
    
    #include <stdio.h>
    int IsPrime(int n);
     
    int main()
    {
        int i,sum = 0;
        for(i = 1;i <= 100;i++)     
        {
            if(IsPrime(i))
            {
                printf("%d\n",i);
                sum += i;
            }
        }
        printf("sum of prime numbers:%d\n",sum);
        return 0;
    }
    int IsPrime(int n)
    {
        int i,flag;
        if(1 == n)
            flag = 0;       //1不是素数,flag = 0。
        else if(2 == n)
            flag = 1;       //2是素数,flag = 1。                     //考虑1、2这两个素数
        else
        {
            flag = 1;
            for(i = 2;i < n;i++)                  
            {   
                if(n%i==0)   // 遇到 能整除的,则退出循环
                {
                    flag = 0;
                    break;
                }
                
            }
        }
        return flag;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月24日
  • 已采纳回答 2月16日
  • 修改了问题 2月16日
  • 创建了问题 2月16日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵