CSP/信奥赛C++刷题训练:经典信奥数学例题(3):洛谷P1075 :[NOIP2012 普及组] 质因数分解
CSP/信奥赛C++刷题训练:经典信奥数学例题(3):洛谷P1075 :[NOIP2012 普及组] 质因数分解
题目描述
已知正整数 n n n 是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入格式
输入一个正整数 n n n。
输出格式
输出一个正整数 p p p,即较大的那个质数。
样例 #1
样例输入 #1
21
样例输出 #1
7
提示
1 ≤ n ≤ 2 × 1 0 9 1 \le n\le 2\times 10^9 1≤n≤2×109
NOIP 2012 普及组 第一题
AC代码
#include<bits/stdc++.h>
using namespace std;
/*数学思维
唯一分解定理:一个数能且只能分解为一组质数的乘积。
若输入的数满足题目条件,它就只能分解为两个质数的乘积。
所以在比他小且大于1的自然数中,只有那两个数能整除它,不可能再有任何合数或质数能整除它了
*/
int n;
int main(){
cin>>n;
for(int i=2;i<=sqrt(n);i++){
if(n%i==0){
cout<<n/i;
break;
}
}
return 0;
}
文末彩蛋:
点击王老师青少年编程主页有更多精彩内容