题目描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )
最后一个数后面也要有空格
详细描述:
函数接口说明:
public String getResult(long ulDataInput)
输入参数:
long ulDataInput:输入的正整数
返回值:
String
输入描述:
输入一个long型整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。
示例1
输入
180
输出
2 2 3 3 5 思路: 1、2开始整除能除尽则是质因子 2、因为质因数顾名思义,即是质数也是因数,那么我们可以从2-sqrt(n)+1,求出其中的质数,然后以此判断能否被n整除。
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <map>
using namespace std;
string GetData(long index)
{
int i = 2;
string ResStr = "";
while(index>=2){
if(index%i==0){
ResStr+=to_string(i)+" ";
index/=i;
}
else{
i++;
}
}
return ResStr;
}
int main() {
long n;
cin>>n;
cout << GetData(n) << endl;
return 0;
}
参考:https://blog.csdn.net/little_girl_ly/article/details/80139092
原文地址:https://www.cnblogs.com/liuruoqian/p/11644785.html