求正整数的质因子

来源:互联网 发布:hdmi矩阵说明书 编辑:程序博客网 时间:2024/06/06 07:22

题目描述

功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )

最后一个数后面也要有空格

详细描述:


函数接口说明:

public String getResult(long ulDataInput)

输入参数:

long ulDataInput:输入的正整数

返回值:

String


我的代码:

#include<iostream>
using namespace std;
#include"string"
string getResult(long a) {
int i = 2;
string result;
while (a != 1) {
for (i; i <= a; i++) {
if (a%i == 0) {
a = a / i;
result = result + to_string(i) + " ";


break;
}
}


}
return result;
}
int main() {
long s;
cin >> s;
cout << getResult(s);
//cout << "end" << endl;
return 0;
}


我的收获:

之前的for循环我用的是:for (i; i <= a/2; i++) 

编译一直不通过,检查是卡死在for()循环里,一直找不到原因,显示结果一直是a=i,就很奇怪这为什么进入不了for循环,后才想通,原来是i<=a/2的条件不满足了。

原创粉丝点击