轩攻re 发表于 2020-1-27 14:55:08

关于素数

#include<stdio.h>
int main()
{
        int n,i=2;
       
        for(n=i;n<=100;n++)
        for(;i<=10;i++)
        if((n%i)!=0)
{
printf("%d",n);


return 0;

}
结果:2 2 2 2 2 2 2.
题目要求:输出100以内的所有素数
求问问题在哪儿

zltzlt 发表于 2020-1-27 15:01:51

#include <stdio.h>
int main()
{
    int n, i = 2, flag;

    for (n = 2; n <= 100; n++)
    {
      flag = 1;
      for (; i <= (n / 2); i++)
      {
            if ((n % i) == 0)
            {
                flag = 0;
            }
      }
      if (flag)
            printf("%d ", n);
      i = 2;
    }
    return 0;
}

鬼才 发表于 2020-2-1 18:26:42

不是很理解你这些代码的意思...
而且有两个"{"
却只有一个"}"居然不会报错的嘛?
感觉你的整体思路都很乱....

Aseeker 发表于 2020-2-2 20:08:25

#include<stdio.h>
int main()
{
      int n,i;
      for(n=2;n<=100;n++)
                {
                        for(i=2;i<n;i++)
                        {
                                if(n%i==0)
                                        break;
                        }
                        if(n==i)
                                printf("%d",n);
                }
                return 0;
}

Aseeker 发表于 2020-2-2 20:21:06

#include<stdio.h>
int main()
{
      int n,i=2;
      
      for(n=i;n<=100;n++)
                        for(;i<=10;i++)
                                if((n%i)!=0)
                                        printf("%d",n);
                return 0;
}

你这个i相当于第二个for语句i的全局变量
所以当n=2是 里面的for执行9次,1次判断为0,8次为1,所以输出有八个2,这时候i已经等于11,i=11;
所以当n=3~100时 ,i一直比n大,判断一直为0

2164930278 发表于 2020-2-4 13:44:22

1、先解释一下什么是素数(质数):只能被1和自己本身整除的数是素数。
例如:3、7、11、13........
还有素数不可能偶数。#include <stdio.h>
#include <math.h>
int main()
{
        int n,k,i,m=0;
        for(n=1;n<101;n+=2)//n每次自增2是确保判断的数位奇数
        {
                k=sqrt(n);//开平方的话就可以大大减少循环次数,因为1个数可以被两个数相乘
                for(i=2;i<=k;i++)
                {
                        if(n%i==0)//判断n是否为素数
                        break;
                }
                if(i>=k+1)
                printf("%d,",n);
        }
        return 0;
}

召唤风云 发表于 2020-2-6 11:47:30

这涉及到充分条件和必要条件。比如说。100能被五整除,所以它一定不是素数。100不能被三整除。但他不一定是素数。只有当一个数不能被大于1,且小于它本身的所有数整除时,它才是素数,重点是所有

召唤风云 发表于 2020-2-6 11:50:37

你的代码还有一个问题,就算一个数是素数,你也不需要重复打印。在打印后应该使用break跳出循环。
页: [1]
查看完整版本: 关于素数