C语言程序设计题:用筛选法求100以内的素数

如题所述

第1个回答  2021-03-08
题目说的是用筛选法 百度筛选法可得知概念,代码如下
#include <stdio.h>
main(){
int a[100],i;
for(i=1;i<101;i++) a[i-1] = i;

a[0] = 0; //首先排除 1
for(i=0;i<100;i++){
if(a[i] != 2 && a[i]%2==0) a[i] = 0; //排除以2为倍数
if(a[i] != 3 && a[i]%3==0) a[i] = 0;
if(a[i] != 5 && a[i]%5==0) a[i] = 0;
if(a[i] != 7 && a[i]%7==0) a[i] = 0;
}
for(i=0;i<100;i++){
if(a[i]!=0) printf("%d ",a[i]);
}
return 0;
}

希望对你有帮助
第2个回答  2019-12-21
素数。在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。素数在数论中有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。本回答被网友采纳
第3个回答  2019-04-07

7,8句先对定义数组中所有元素赋值为1;第九句是遍历所有的数,使用了筛分法;其中嵌套了一个循环(12,13句)只要序号是已知质数的倍数该数组元素都被赋值为0;该循环外面是一个判断语句(10句)只要下标是质数都会进入循环判断中。最后输出的是数组的下标,只要数组元素值仍然为1就说明其下标不是任何一个素数的倍数,那么它就是一个素数。

相似回答