[NOIP2012 普及组] 质因数分解
题目描述
已知正整数 nnn 是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入格式
输入一个正整数 nnn。
输出格式
输出一个正整数 ppp,即较大的那个质数。
样例 #1
样例输入 #1
21
样例输出 #1
7
提示
1≤n≤2×1091 \le n\le 2\times 10^91≤n≤2×109
NOIP 2012 普及组 第一题
思路
求能整除n的质数,再用n除以该质数得到另一个质数,输出这两个质数中较大的一个。
AC代码
#include <iostream>
#include <algorithm>
#define AUTHOR "HEX9CF"
using namespace std;
int main() {
int n;
cin >> n;
for(int i = 2; i < n; i++){
int p = 1;
for(int j = 2; j < i; j++){
if(!(i % j)){
p = 0;
break;
}
}
if(p && !(n % i)){
int b = n / i;
cout << max(i, b) << endl;
break;
}
}
return 0;
}
该编程题目要求找出给定正整数n的最大质因数。通过循环遍历从2到n的整数,检查是否为质数且能整除n,然后输出这两个质数中的较大者。AC代码示例中使用了C++,通过判断质数和整除关系找到答案。
530

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



