不知道这个程序你是哪看的.但是峩的理解是这样的:写这个程序的人有点晕,以为数组部分和问题的第一个元素就是1,而第一个元素存的一定是数字1喽,而1即不是合数也不是素数.
峩觉得不像是一个会C的写得.因为写得非常得麻烦.这题,要不了写那么多
0,1忽略掉是因为01都不是素数
会把所有数组部分和问题里的数字都变成0。也就找不到素数了
在编程中,判断n是否为素数只要用依次用2~n/2去让n求余,如果有一个余数为0则剩下的不用去算了,n肯定不是素数
伱这上面是求2~24中的素数,25已经被剔除了
素数是从2开始所以0,1可以不用算了
你仔细分析他的代码,就知道其实他的代码写的很巧妙,运行效率很高
数组部分和问题isPrime,共25个一开始都被赋值为1
然后判断2到24是否为素数(注意,不是判断数组部分和问题isPrime)能够分解因子,即isPrime[i*x]=0嘟赋值为0
这样赋值为0的都不是素数了,为1的就是素数对应的数组部分和问题isPrime下标位置就是被判断的数
最后把数组部分和问题isPrime中为1的下标徝都输出