c语言中用筛选法求素数

2024-12-29 03:39:26
推荐回答(3个)
回答1:

一个质数。在大于1的自然数中,除1和100整数本身外,不能被任何其他自然数整除的次数。素数在数论中起着重要的作用。

大于1但没有质数通道的数称为合数。1和0既不是质数也不是合数。

通过滤波法得到的100以内质数的源代码如下:

#include"stdio.h"

main()

main()

IntI,j。

对于(I = 2;我< 99;我+ +)

对于(j = 2;<我;J + +)

If(I%j==0)

打破;

如果(j==I-1)

Printf(“%4d”,I);

扩展资料:

100以内的数字代码如下

包含< bits/stdc++。H >

使用命名空间性病。

Intthesum(Intn)

返回(n/10+n%10%)+(10)(n/10%*(n%10));

Intmain(){

Intn=100;

For (int I = 10;I < = n;我+ +)

If (sum (I) = = I) cout < < I < < endl;

返回0;

回答2:

main(){
int
i,j,h,k=0,p[100]={0},a[200]={0};
for(i=1;i<200;i++)a[i]=i+1;/*将所有候选数放入筛中*/
for(i=0;i<200;i++)
for(j=0;j<200;j++)
if(a[i]!=0){
p[k]=a[i];/*将最小数放入素数集合p中*/
for(h=k;h<200;h++)
if(a[h]%p[k]==0)a[h]=0;/*将这个素数的倍数从筛中删去*/
k++;}
i=0;
printf("primes:");
while(p[i]!=0){printf("%5d",p[i]);i++;}/*打印出所有素数*/
}

回答3:

main(){
int i,j,h,k=0,p[100]={0},a[200]={0};
for(i=1;i<200;i++)a[i]=i+1;/*将所有候选数放入筛中*/
for(i=0;i<200;i++)
for(j=0;j<200;j++)
if(a[i]!=0){
p[k]=a[i];/*将最小数放入素数集合p中*/
for(h=k;h<200;h++)
if(a[h]%p[k]==0)a[h]=0;/*将这个素数的倍数从筛中删去*/
k++;}
i=0;
printf("primes:");
while(p[i]!=0){printf("%5d",p[i]);i++;}/*打印出所有素数*/
}