筛选法的求素数本质就是把某个数的倍数先全部剔除,例如1-100,我们只要考虑1-10(100根号)的倍数,1既不是素数也不是质数,先把2的倍数全部剔除,再把3的倍数全部剔除,4及4的倍数已经被2剔除了,接着把5的倍数全部剔除,以此类推。
原本考虑是每剔除某个整数的倍数后获得的数组覆盖原数组,但不知到如何操作。
直到答案中对凡是倍数将其赋值为零的这个操作让我觉得很灵活。因为题目只要求输出素数,并没有说要有一个全是素数的数组。输出时也十分方便,凡是元素的值为零便跳过。
作为新手,要尤其关注这些条件的设定,,有些操作就是满足一个个条件后进行的,而这些条件的描述用简单的程序语言不知如何描述,其实只要是 是或否,0或1即可。
#include<stdio.h>
int main()
{
int a[101