题目:
P1075 [NOIP2012 普及组] 质因数分解 - 洛谷 | 计算机科学教育新生态
题目描述
已知正整数 n 是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入格式
输入一个正整数 n。
输出格式
输出一个正整数 p,即较大的那个质数。
输入输出样例
输入 #1复制
21
输出 #1复制
7
说明/提示
1≤n≤2×1e9
NOIP 2012 普及组 第一题
思路:
很简单,枚举出最小的质数i且是n的因数,n/i也是质数,循环就可以结束了,输出n/i。
代码如下:
#include<iostream>
using namespace std;
bool is_prime(int x)
{
for(int i = 2 ; i < x ; i++)
{
if(x % i == 0)
return false;
}
return true;
}
int main(void)
{
int n;
cin >> n;
for(int i = 2 ; i < n ; i++ )
{
if(n % i == 0)
{
if(is_prime(i))
{
cout << n/i << endl;
break;
}
}
}
return 0;
}