2 u013728106 u013728106 于 2014.04.09 18:58 提问

用c++编写一个类输出100到200的素数,对不起我是刚学的c++,问一些简单的问题!
c++

#include
#include
#include
using namespace std;
class Prime
{
private:
int a[25];
int n1,n2;
int num;
public:
Prime(int n1,int n2,int num);
void primef();
void show();
};
Prime::Prime(int m1,int m2,int n):n1(m1),n2(m2),num(n){}
void Prime::primef()
{
int m,i,k,leap=1,h=0;
for(m=100;m<=200;m++)
{
k=sqrt(m);
for(i=2;i<=k;i++)
{
if(m%i==0)
{
leap=0;
}
}
if(leap==1)
{
a[h]=m;
h=h+1;
num=1+num;
}
}
cout<<num;
}
void Prime::show()
{
int j;
for(j=0;j<=(num-1);j++)
{
cout<<"a[j]="<<a[j]<<" ";
if(j%5==0)
cout<<endl;
}
cout<<"num="<<num<<endl;
}
int main()
{
Prime p(100,200,0);
p.primef();
p.show();
return 0;
}

2个回答

u012492669
u012492669   2014.04.13 19:41

什么意思?看不出来在问什么啊

a13728843352
a13728843352   2014.05.14 14:18

for(m=100;m<=200;m++)
{
k=sqrt(m);
for(i=2;i<=k;i++)
{
if(m%i==0)
{
leap=0;
}
}
if(leap==1)
{

a[h]=m;
h=h+1;
num=1+num;
}
//....
}

这个部分有问题,你
int leap = 0;


if(m%i==0)
{
leap=0;
}
修改成
if(m%i==0)
{
leap++;
}

下面
if( leap==0 )
{

a[h]=m;
h=h+1;
num=1+num;
}

你再试试

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!