谨以此文,纪念我的第一篇题解。
题目链接
先输入
n
n
n,再用上
i
i
i 这个变量。
因为
n
n
n 仅是两个质数的积,所以
i
i
i 循环到小的质数时
(
n
m
o
d
i
=
0
)
(n\bmod i=0)
(nmodi=0),循环就可以用break跳出了,最后再输出
n
i
\dfrac{n}{i}
in。
#include <iostream>
using namespace std;
int main(){
int n;
cin>>n;//输入n的值
for(int i=2;i*i<=n;i++) if(n%i==0) {cout<<n/i;break;}//把小质因数的值赋给i
return 0;//结束
}
综上所述,循环结束的条件就是
i
2
≤
n
i^2\le n
i2≤n,for的二区也应是i*i<=n。
本文介绍了一种高效的质因数分解算法,通过循环遍历从2开始的整数,找到第一个能整除输入数n的质数i,然后输出n/i。此算法适用于n为两个质数乘积的情况。
719

被折叠的 条评论
为什么被折叠?



