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

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 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法