题目描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )
最后一个数后面也要有空格
详细描述:
函数接口说明:
public String getResult(long ulDataInput)
输入参数:
long ulDataInput:输入的正整数
返回值:
String
输入描述:
输入一个long型整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。
输入例子:
180
输出例子:
2 2 3 3 5
C++代码
#include<iostream> #include<math.h> using namespace std; bool Is_Prime(long int val); void All_Preme(int nums); int main() { long int nums; cin >>nums; All_Preme(nums); return 0; } void All_Preme(int nums) { long int val = 2; while(nums>1) { if(Is_Prime(val) && nums%val == 0) { cout << val << " "; nums = nums/val; val = 2; continue; } val++; } } bool Is_Prime(long int val) { long int i = 2; if(val == 2) return true; for(long int i=2; i < sqrt(val); ++i) { if(val%i == 0) return false; } return true; }
注意:判断是否是质数的函数,若暴力求解,无法达到时间要求。