题目描述
已知正整数n 是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入格式
输入一个正整数n。
输出格式
输出一个正整数p,即较大的那个质数。
输入
21
输出
7
说明/提示
1≤n≤2×10^9
看到题目第一反应是埃氏筛法找出范围内所有质数,再循环一个一个试。
但换个角度想,n为两质数乘积,因数只要1、n自身以及两个质数,找到最小质数,再作商即可
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
for (int i = 2; i < n; i++)
{
if (n % i == 0)
{
printf("%d\n", n / i);
break;
}
}
return 0;
}