题目概述:
已知正整数n是两个不同的质数的乘积,试求出两者中较大的那个质数
输入格式:
一个正整数n。
输出格式:
一个正整数p,即较大的那个质数。
输入输出样例
输入 #1
21
输出 #1
7
说明/提示
n<=2*10^9
代码:
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int pdzs(int x)
{
int z=0;
for(int i=2;i<=sqrt(x);i++)
{
if(x%i==0)
{
z=1;
continue;
}
}
if(z==0&&x>1)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int n,maxn=0;
cin>>n;
for(int i=1;i<=sqrt(n);i++)
{
if(pdzs(i)==1&&pdzs(n/i)==1&&i>maxn&&i*(n/i)==n&&i!=(n/i))
{
if(i>(n/i)&&i>maxn)
maxn=i;
if(i<(n/i)&&(n/i)>maxn)
maxn=(n/i);
}
}
cout<<maxn;
return 0;
}