请教编程高手,题目要求在C++中求1000以内的素数。

来源:百度知道 编辑:UC知道 时间:2024/05/11 19:52:05
我写了以下的代码,但运行结果是:1000以内的素数有:1,2,3, ——明显不对。特来求救,望高手指点一二,谢谢!
#include <iostream.h>
void main()
{
int a,i,leap=1;
cout<<"1000以内的素数有:";
for(a=1;a<=1000;a++)
{for(i=2;i<a;i++)
if(a%i==0) leap=0;
if(leap) cout<<a<<",";
}
}

#include <iostream.h>
void main()
{
int a,i,leap;
cout<<"1000以内的素数有:";
for(a=1;a<=1000;a++)
{
leap=1;//在每次重新判断一个数是否素数的时候leap要重置为1
for(i=2;i<a;i++)
if(a%i==0) leap=0;
if(leap) cout<<a<<",";
}
}

呵呵,你的leap没有复位
#include <iostream.h>
void main()
{
int a,i,leap=1;
cout<<"1000以内的素数有:";
for(a=2;a<=1000;a++)
{
for(i=2;i<a;i++)
if(a%i==0)
leap=0;
if(leap)
cout<<a<<",";
leap=1;
}
}
这样就可以了。加了leap=1;

自定义一个素数判断函数,调用该函数对2和1000以内的奇数逐一进行判断,是素数的则输出。举例如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include <iostream>
using namespace std;
bool prime(int n){//定义一个素数判断函数