我正在尝试打印给定整数的因子。作为输出,我应该打印输入数字和该数字的因子。相反,我得到输出2.
我在哪里犯了错误?
我是c ++的新手,我们将不胜感激。
代码:
#include<iostream>
int fact(int x);
using namespace std;
int main()
{
int x;
cout<<"plz,enter no."<<endl;
cout<<fact(x)<<endl;
}
int fact(int num)
{
for ( int i = 2; i <= num; ++i )
{
while ( num % i == 0 )
{
num /= i;
std::cout << i << std::endl;
}
}
}
答案 0 :(得分:0)
我让你的代码工作了。但是,您可以通过仅运行sqrt(num)
次迭代来改进此代码。
#include<iostream>
int fact(int x);
using namespace std;
int main()
{
int x;
cout<<"plz,enter no."<<endl;
cin >> x;
cout << "Factors: ";
fact(x);
}
int fact(int num)
{
for ( int i = 1; i <= num; ++i )
{
if ( num % i == 0 )
{
std::cout << i << " ";
}
}
cout << endl;
}