题目:
已知正整数 n 是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入格式
一个正整数 n。
输出格式
一个正整数 p ,即较大的那个质数。
数据范围
n≤2×109
Sample Input
21
Sample Output
7
思路:题目要求输出最大的那个数,其实一个数你把它开根号,从根号旁边找,题目给你的数一定是两个质数的积,不用考虑其他因素
eg:21 开根号后:3 ,21%3==0,输出21/3 break
eg: 49 开根号 :7 ,49%7等于0,输出49/7 break;
没找到就减减继续遍历
纯暴力做肯定会超时,也不要把它想复杂了
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int n,i;
scanf("%lld",&n);
long long int m=sqrt(n);
for(i=m;i>=2;i--)
{
if(n%i==0)
{
printf("%lld",n/i);
break;
}
}
return 0;
}