/* 本文系「人工智能安全」(微信公众号)原创,转载请联系本文作者(同博客作者)。 欢迎你转发分享至朋友圈,并给予「关注、星标、点赞」三连支持。互相欣赏,互相批判。 我是一名有诗人气质的网络安全工程师 期待与你的思想交流碰撞出智慧的花火 水木清华 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; }