yuzhitai 发表于 2021-7-6 17:26:52

我没说你是故意的,而是教我的那个人。。。

yuzhitai 发表于 2021-7-6 17:27:26

他把错的方法放在我面前,结果我就想到了错的方法。。。

yuzhitai 发表于 2021-7-7 17:34:50

#include<stdio.h>
int main(void)
{
      int num,num1,i;
      printf("请输入一个数:");
      scanf("%d",&num1);
      num = num1;
      for(i = 2;i < num1/2;i++)
      
                num = num%i;
                while(num == 0)
                {
                        break;      
                }
      if(num)
      {
                printf("%d是一个素数",num1);
      }
      else
      {
                printf("%d不是一个素数",num1);
      }
      
}
这样子为什么还出错?

空开终于不跳了 发表于 2021-7-9 10:56:10

num = num%i;
                while(num == 0)
                {
                        break;      
                }

这段程序:能整除的时候while为真执行后面的break跳出,while为假的时候不执行,结果就是不管真假都不执行,那写这个是什么意思呢?

yuzhitai 发表于 2021-7-27 16:20:18

他把其中的一个值给舍弃掉了,这样子也能得到着正确的结果。

yuzhitai 发表于 2021-7-27 16:31:08

#include<stdio.h>
int main(void)
{
        int num,num1;
        printf("请输入一个数:");
        scanf("%d",&num);
        num = num1;
        for(i = 2; i < num/2;i++)
        {
                while(num % i == 0)
                {
                printf("%d不是一个素数",num1);
                return 0;       
                }
        }
        printf("%d是一个素数",num1);
        return 0;
}

yuzhitai 发表于 2021-7-27 16:39:08

#include<stdio.h>
int main(void)
{
    int num,num1,i;
    printf("请输入一个数:");
    scanf("%d",&num1);
    num = num1;
    for(i = 2;i < num/2;i++)
    {
      if (num % i == 0)
      {
            printf("%d不是一个素数",num1);
            return 0;
      }      
    }
    printf("%d是一个素数",num1);
        return 0;   
}
这段代码是对的。

小冲鸭 发表于 2021-7-27 16:54:22

喝水卡牙 发表于 2021-7-6 00:17
自己添加 printf 打印num ,i的值,就会发现问题。计算1,2,3都没问题,计算4开始,num==9,9%2==1 ...

不好意思,反对点错了,我在手机上看的,误点
页: 1 [2]
查看完整版本: 我写了一个求素数的代码,为什么显示9也是素数?