C语言 我的筛选法求素数

来源:百度知道 编辑:UC知道 时间:2024/05/26 12:09:12
/*
用筛选法,求100以内的所有素数*/
#include<math.h>
#include<stdio.h>
#include<stdio.h>
#include<math.h>
#include<conio.h>
main()
{
int i,j,k;
int a[101];
clrscr();
for(j=2;j<101;j++)
{
for(k=2;k<sqrt(j)+1;k++)
{
if(a[j]%k==0&&j!=2)
{
a[j]=0;
}
}
if(a[j]!=0)
printf("%d\n",j);
}
}


void main()
{
int i,j,k;
int a[101];

for(i=0;i<101;i++) //要给数组赋值先
a[i]=i;

for(j=2;j<101;j++)
{
for(k=2;k<=sqrt(j)+1;k++) //k<=sqrt(j)+1使2能够输出
{
if(a[j]%k==0&&j!=2)
{
a[j]=0;
}
}
if(a[j]!=0)
printf("%d\n",j);
}
}

首先,你没有赋初值
if(a[j]%k==0&&j!=2) ==> if(j%k==0&&j!=2)
还有你这个程序中无法输出2这个素数。
可以在循环前先输出2
我也是刚刚学c