/*
本文系「人工智能安全」(微信公众号)原创,转载请联系本文作者(同博客作者)。
欢迎你转发分享至朋友圈,并给予「关注、星标、点赞」三连支持。互相欣赏,互相批判。
我是一名有诗人气质的网络安全工程师
期待与你的思想交流碰撞出智慧的花火
水木清华
2020-03-12
质数因子
*/
#include<iostream>
using namespace std;
//求解质因子的接口
string getResult(long ulDataInput)
{
string str; //初始化一个字符串,用于存储质因子及输出求解结果
//直到整数或更新后的整数为 1(如 1 = 7 / 7) 时,结束循环体
while (ulDataInput != 1)
{
//从第一个质数 2 开始判断,如果 2 不满足,那么后面的因子只可能为奇数,且为奇素数
//若输入的整数本身就是素数,那么直接输出该整数,但需要通过for循环来判断它是否为素数
for (int i = 2; i <= ulDataInput; i++)
{
if (ulDataInput % i == 0)
{
ulDataInput /= i; //更新整数,如 1 = 7 / 7,则结束 while 循环
string s = to_string(i); //将整数转换为字符串
str = str + s + ' '; //将整数字符串和空格添加到 str 的末尾
break;
}
}
}
return str; //返回结果
}
//主函数
int main()
{
long num;
while(cin >> num)
{
cout << getResult(num) << endl;
}
return 0;
}