怎样输出100到200间的素数??

pplzb 2002-09-01 02:24:27
方法越原始越好。
...全文
716 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bonnyone 2002-09-01
  • 打赏
  • 举报
回复
楼上的效率不错!!!!
bonnyone 2002-09-01
  • 打赏
  • 举报
回复
#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

const int MAXNUM=2000000;
const int MINNUM=1000000;

enum BOOL{FALSE=0,TRUE=1};

/* isprime(num) judged whether num is a prime or not */
BOOL isprime(int num)
{

if(num%2==0)
return FALSE;

for(int i=3;i<=sqrt(num);i+=2)
if(num%i==0)
return FALSE;

return TRUE;
}


void main()
{

vector<int> prime;
prime.push_back (3);

for(int i=5;i<=sqrt(MAXNUM);i+=2)
if(isprime(i))
prime.push_back (i);

vector<int>::iterator iterstart=prime.begin (),iterend=prime.end();
vector<int>::iterator iter;

for(iter=iterstart;iter<iterend;iter++)
cout<<*iter<<" ";

int j;
try
{
for(i=MINNUM+1;i<=MAXNUM;i+=2)
{
j=sqrt(i);

for(iter=iterstart;*iter<=j&&iter<iterend;iter++)
{
if(i%*iter==0)
break;
}

if(i%*iter!=0)
{
cout<<i<<" ";
}
}
}

catch(...)
{
cerr<<"there are something error."<<endl;
}

}

包你满意,可求int范围(当然可扩张)的素数,只要调整MINNUM和MAXNUM的范围!!!!!!!!
fangxiaoan 2002-09-01
  • 打赏
  • 举报
回复
发现你在看小谭爷爷的书!
glassshark 2002-09-01
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include <iostream.h>

int main(int argc, char* argv[])
{
int i,j;
int num=0; //计算总共有多少个素数
for(i=101;i<200;i+=2)
{
for(j=2;(i%j)&&(j<i/2);j++);
if(j>=i/2){
cout<<i<<" ";
num++;
}
if(num%10==0)//一行输出10个
cout<<endl;
}
return 0;
}
glassshark 2002-09-01
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include <iostream.h>

int main(int argc, char* argv[])
{
int i,j;
int num=0; //计算总共有多少个素数
bool flag;
for(i=101;i<200;i+=2)
{
for(j=2;(i%j)&&(j<i/2);j++);
if(flag=j>=i/2){
cout<<i<<" ";
num++;
}
if(num%10==0)//一行输出10个
cout<<endl;
}
return 0;
}

glassshark 2002-09-01
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include <iostream.h>

int main(int argc, char* argv[])
{
int i,j;
int num=0; //计算总共有多少个素数
bool flag;
for(i=101;i<200;i+=2)
{
for(j=2;(i%j)&&(j<i/2);j++);
if(j>=i/2)
flag=true;
else
flag=false;
if(flag)
{
cout<<i<<" ";
num++;
}
if(num%10==0) //一行输出10个
cout<<endl;
}
return 0;
}

hellolwl 2002-09-01
  • 打赏
  • 举报
回复
#include <iostream>
#include <cmath>

using namespace std;

int IsPrime(int n)
{
int k = sqrt(n);
if((k * k) < n) k++;
for(int i = 2;i <= k;i++)
{
if(n%i == 0) return 0;
}
return 1;
}

void main()
{
for(int i = 100; i<= 200;i ++)
{
if(IsPrime(i)) cout<<i<<" ";
}
}
wangran 2002-09-01
  • 打赏
  • 举报
回复
我临时写了一个:
#include <iostream.h>

int main()
{

int i,j;
int num=0; //计算总共有多少个素数
for(i=100;i<200;i++)
{
bool flag=true; //用来表示是否是素数
for(j=2;j<i/2;j++)
if(i%j==0)
{
flag=false;
break;
}
if(flag)
{
cout<<i<<" ";
num++;
}
if(num%10==0) //一行输出10个
cout<<endl;
}
return 0;

}
wangran 2002-09-01
  • 打赏
  • 举报
回复
是素数吗?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧