描述
已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。
输入
输入只有一行,包含一个正整数 n。
对于60%的数据,6 ≤ n ≤ 1000。
对于100%的数据,6 ≤ n ≤ 2*10^9。
输出
输出只有一行,包含一个正整数 p,即较大的那个质数。
样例输入
21
样例输出
7
先看超时的:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=n-1; i>=2; i--)
{
if(n%i==0){
cout<<i;
return 0;
}
}
return 0;
}
再看对的:
#include <stdio.h>
#include <math.h>
int main()
{
int a,i;
scanf("%d",&a);
for(i=2;i<=sqrt(a);i++)
{
if(a%i==0) printf("%d\n",a/i);
}
return 0;
}
我相信你明白了!