c语言循环素数

来源:百度知道 编辑:UC知道 时间:2024/07/02 19:28:45
我想知道素数的含义
#include<stdio.h>
void main()
{
int i,j,n;
n=0;
printf("100到200之间的所有素数");
for(i=100;i<=200;i++)
{
j=;
while(i%j!=0)
{
j++;
}
if(i==j)
{
printf("\n%4d",i);
n++;

}
}
printf("\n");
}
为什么这段程序是j=2开始呢?
但是我把j=3,或4,运行结果还是一样的!
不太明白
而且素是指只能被1和它本身的整除对吧
为什么不是从j=1开始呢?
为什么j=1就执行不了了呢?
从1开始不行吗?

从100到200 不管是哪个数 对1取余都是0
所以对于j=1这一步就不需要再考虑了

如果是从1到100的所有素数 那么j=3或4就不行了
因为2不是素数 但是对于100到200是可以的
所以j从2开始是考虑全面点

素数是只能被1和它本身的整除的数,所有的数都能被1整除,所以没有必要判断,从2开始,一直找到第一个能被它整除的数,若就是他本身则表示改数为素数,否则这个数就有一个除开本身跟1也能被整除的数了,就不是素数,进行下一个数的判断。

素数的定义就是只能被1或自身整除的数,所以程序是从2开始没有包括1 ,这样只要从2到自身这个数之间,只要有一个数可以整除它,它就不是素数,3和4当然也可以,因为是求100到200之间的素数,你可以j换成是300,程序就陷入死循环了,