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 python+selenium,在新增时弹出了一个输入框
  • ¥15 苹果验机结果的api接口哪里有??单次调用1毛钱及以下。
  • ¥20 学生成绩管理系统设计
  • ¥15 来一个cc穿盾脚本开发者
  • ¥15 CST2023安装报错
  • ¥15 使用diffusionbert生成文字 结果是PAD和UNK怎么办
  • ¥15 有人懂怎么做大模型的客服系统吗?卡住了卡住了
  • ¥20 firefly-rk3399上启动卡住了
  • ¥15 如何删除这个虚拟音频
  • ¥50 hyper默认的default switch