求任一整数的因子,不能使用(for或while这样的)循环

来源:百度知道 编辑:UC知道 时间:2024/06/17 10:36:52
如题,用C/C++回答。谢谢
我也不确定题目的具体要求是不是连GOTO这样的也不能用。。

//---------------------------------------------------------------------------
#include <iostream>

using namespace std;
class integer{
public:
long int data;
integer(int d):data(d){};
integer(void){};
int yxs(int i=1)//求因数
{
if (i<=data&&data%i==0) {
cout<<i<<endl;
return 1+yxs(i+1);
}
else if (i>data) return 0;
else return yxs(i+1);

}

};

int main(void)
{
integer a;
int b;
cout<<"请输入一个正整数:"<<flush;
cin>>a.data ;
if (a.data<=0) {
cerr<<"必须输入一个正整数"<<endl;
exit(1);
}

cout<<"因数有:"<<endl;
b=a.yxs();//yxs()成员函数求出data成员变量的所有因数(正整数)(包括1和data本身),返回值是因数的个数
cout<<"共有"<<b<<"个因数"<<endl;
return 0;
}
//--------------