C 判断素数

来源:百度知道 编辑:UC知道 时间:2024/06/05 01:36:36
#include<stdio.h>
#include<math.h>
#define N 101
main()
{
int i,j,line,a[N];
for(i=2;i<=100;i++) for(j=i+1;j<=100;j++) {
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;}
printf("\n");
for(i=2,line=0;i<=100;i++)//怀疑为题出在此, 但是一时也没有改对
{
if(a[i]!=0)
{
printf("The sushu is %d: ",a[i]);
line++;
}
if(line==10)
{printf("\n");
line=0;}
}
} 运行没有得到结果, 怀疑问题出在我代码中的注释处, 请帮忙答疑呀

因你数组a没有初始化,用筛法求素数,一定要有一个事先准备好的数列。与注释语句无关。修改如下:

//---------------------------------------------------------------------------

#include<stdio.h>
#include<math.h>
#define N 101
main()
{
int i,j,line,a[N];
for (i=0; i<N; i++) {/*注意这里,需要这一段*/
a[i]=i;
}
for(i=2;i<=100;i++)
for(j=i+1;j<=100;j++) {
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;
}
printf("\n");
for(i=2,line=0;i<=100;i++)
{
if(a[i]!=0)
{
printf("The sushu is %d \n",a[i]);/*这里建议加一个换行,这样输出更整齐*/
line++;
}
if(line==10)
{printf("\n");
line=0;}
}
}
//---------------------------------------------------------------------------

#include"stdio.h"
#include"math.h"
void main(){
int i,a,flag;
for(i=101;i<=200;i++)

{
flag=1;
for(a=2;a<=s