#include<stdio.h>
main()
{
int i,j,n[100];
for(i=0;i<=99;i++)
n[i]=i+1;
for(j=2;j<=10;j++)
for(i=2;i<=99;i++)
{if(n[i]%j==0)
n[i]=0;
}
for(i=2;i<=99;i++)
{if(n[i]!=0)
printf("\n%d",n[i]);
}
getchar();
}
2007-04-11 13:06
2007-04-11 13:34
2007-04-11 13:36
10以内的质数你的都没找出来。。for(j = 2;j <= 10;j++)前加个条件语句。分出10以内的才对!!!
潭浩强出的书里就有这么个程序,比较简洁!
2007-04-11 13:48
#include<stdio.h>
#define SIZE 98
#define TRUE 1
#define FALSE 0
int main(void)
{
int iI = 0;
int iJ = 0;
int iCnt = 0;
int iFlag = FALSE;
int iArray[SIZE];
for (iI = 0; iI < SIZE; ++iI)
{
iArray[iI] = iI + 3;
}
printf("输出3-100之间的素数:\n");
for (iI = 0; iI < SIZE; ++iI)
{
iFlag = FALSE;
for (iJ = 2; iJ < (iArray[iI]/2 + 1); ++iJ)
{
if ( iArray[iI] % iJ == 0)
{
iFlag = TRUE;
}
}
if (! iFlag)
{
printf("%d\t", iArray[iI]);
++iCnt;
if (iCnt % 6 == 0)
{
putchar('\n');
}
}
}
printf("\n一共有%d个素数。\n", iCnt);
return 0;
}
我写的一个,你看看
[此贴子已经被作者于2007-4-11 13:58:01编辑过]
2007-04-11 13:55
2007-04-11 20:36
2007-04-13 12:07

2007-04-13 14:17
知道了
谢谢各位赐教啊
2007-04-13 16:45
我以前写的 你可以参考下:
main()
{
int i,j;
for(i=3;i<=100;i++)
{
for(j=2;j<i;j++)
{
if (i%j==0) break;
else ;
if (j==i-1) printf("%d ",i);
}
}
}
2007-04-13 16:49