【题目链接】
ybt 1098:质因数分解
ybt 1957:【12NOIP普及组】质因数分解
OpenJudge NOI 1.5 43:质因数分解
【题目考点】
1. 质因数
【解题思路】
题目中给的数字n是两个质数的乘积,n的范围最大能达到 2 9 2^9 29
除非二者相等,其它情况下,都是一个较小的质数乘以一个较大的质数。
显然,搜索较小的质因数更容易。
因为数字n是两个质数的乘积,因而数字n只能整除这两个质数。
循环变量i从2开始不断增大,判断n是否能被i整除(i是否是n的因数),如果是,那么i就是n的两个质因数中较小的质因数。那么较大的质因数就是n / i。
【题解代码】
解法1:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i = 2; i <= n; ++i)
{
if(n % i == 0)//第一个找到的n的因数i,一定是n的两个质因数中较小的质因数
{
cout<<n / i<<endl;//n / i就是n的两个质因数中较大的质因数
return 0;
}
}
return 0;
}