问题描述
- 用c++编写一个类输出100到200的素数,对不起我是刚学的c++,问一些简单的问题!
- #include
#include
#include
using namespace std;
class Prime
{
private:
int a[25];
int n1n2;
int num;
public:
Prime(int n1int n2int num);
void primef();
void show();
};
Prime::Prime(int m1int m2int n):n1(m1)n2(m2)num(n){}
void Prime::primef()
{
int mikleap=1h=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(1002000);
p.primef();
p.show();
return 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;
}
//....
}
这个部分有问题,你
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;
}
你再试试
时间: 2024-11-01 02:11:45