公子缠乡 发表于 2021-1-23 17:10:33

素数判断

#include<stdio.h>
int main()
{
        int x;
        while(scanf("%d",&x)!=EOF)
        {
                int isPrime=1;
                int i;
                for( i=1;i<x;i++)
                {
                        if(x%i==0){
                                isPrime==0;
                                break;
                        }
                }
                if(isPrime==1)//运行结果错误
                {       
                  printf("%d是素数\n",x);
                }
          else
                {
                  printf("%d不是素数\n",x);
                }
        }
        return 0;
}
求告知代码哪错误了

一世轻尘 发表于 2021-1-23 17:28:47

i从2,开始,所有的数都能除尽1

昨非 发表于 2021-1-23 17:31:17

两处修改,都在注释里了
#include<stdio.h>
int main()
{
        int x;
        while (scanf("%d", &x) != EOF)
        {
                int isPrime = 1;
                int i;
                for (i = 2; i < x; i++)//这里i的范围应该是从2到x,否则结果中都是非素数
                {
                        if (x % i == 0)
                        {
                                isPrime = 0; //这里等号换成单等号(赋值)
                                break;
                        }
                }
                if (isPrime == 1)
                {
                        printf("%d是素数\n", x);
                }
                else
                {
                        printf("%d不是素数\n", x);
                }
        }
        return 0;
}

一世轻尘 发表于 2021-1-23 17:31:54

本帖最后由 一世轻尘 于 2021-1-23 17:33 编辑

{:10_334:}

公子缠乡 发表于 2021-1-24 16:39:03

昨非 发表于 2021-1-23 17:31
两处修改,都在注释里了

最佳答案不是由提问者设置吗?
页: [1]
查看完整版本: 素数判断