已知正整数n是两个不同的质数的乘积,试求出两者中较大的那个质数。
一个正整数n。
一个正整数p,即较大的那个质数。
输入 #1复制
21
输出 #1复制
7
n ≤ 2 × 1 0 9 n\le 2\times 10^9 n≤2×109
NOIP 2012 普及组 第一题
def isPrime(a:int): if a==2:return True for i in range(2,int(a**0.5)+1): if a%i==0:return False return True n=eval(input()) for i in range(2,int(n**0.5)+1): if isPrime(i): if n%i==0 and isPrime(n//i): print(max(i,n//i)) break
#include <iostream> #include <algorithm> #include <cmath> using namespace std; int n; bool isPrime(int a){ if (a==2) return true; for (int i = 2; i < ceil(pow(a,0.5)); ++i) { if(a%i==0)return false; } return true; } int main() { cin >> n; for (int i = 2; i < ceil(pow(n,0.5)); ++i) { if(isPrime(i)){ if(n%i==0 && isPrime(n/i)){ cout<<max(i,n/i); break; } } } return 0; }