主题:怎样做一个从100到500的素数?
yanzhenxian
[专家分:0] 发布于 2005-06-09 10:39:00
亲爱的朋友们叔叔们:
你们好!请你们帮帮我吧!
回复列表 (共14个回复)
11 楼
msptop [专家分:70] 发布于 2005-11-02 13:15:00
用筛法比较快
#include <iostream.h>
#include <string.h>
void main ()
{
bool num[501];
int i,j;
memset(num,0,sizeof(bool));
for (i=2;i<=500;i++)
{
for (j=i+i;j<=500;j+=j)
{
num[j]=1;
}
}
for (i=0;i<=500;i++) if (num[i]==0) cout<<i<<endl;
}
12 楼
wangyuanchangna [专家分:70] 发布于 2006-02-28 17:23:00
#include"iostream.h"
void main()
{
int n,i,j;
static int flag=0;
for(n=100;n<=500;n++)
{
i=n/2;
for(j=2;i<=i;j++)
if(n%j==0)
{
break;
}
if(j>i)
{
cout<<n<<"是素数!";
flag++;
if(flag%5==0)
cout<<endl;
}
}
}
我来给个vc++的吧!
不过不是一行10个,而是5个!
呵呵!
13 楼
淼淼9999 [专家分:190] 发布于 2006-03-10 18:07:00
#include "math.h"
int main(void)
{
int m,i,k,h=0,leap=1;
for(m=101;m<=500;m+=2)
{ k=sqrt(m+1); /*数学函数,求m+1的完全平方*/
for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap) {printf("%-4d",m);h++;
if(h%10==0) /*输出时,十个数一行*/
printf("\n");
}
leap=1;
}
printf("\nThe total is %d",h);
}
我来回复