使用c ++中的函数查找整数因子

时间:2017-12-09 16:57:57

标签: c++

我正在尝试打印给定整数的因子。作为输出,我应该打印输入数字和该数字的因子。相反,我得到输出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;
        }
    }
}

1 个答案:

答案 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;
}