P1075 质因数分解
题目描述
已知正整数n是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入输出格式
输入格式:
一个正整数n。
输出格式:
一个正整数p,即较大的那个质数。
输入输出样例
输入样例#1: 21
输出样例#1: 7
说明
蛮有意思的一道题
这道题本来我就老老实实的算它的因数,再判断一下这两个数是不是质数,是的话把较大的输出来
结果发现完全不用!
唯一分解定理:一个数能且只能分解为一组质数的乘积。可知,若输入的数满足题目条件,他就只能分解为两个质数的乘积。所以在比他小且大于1的自然数中,只有那两个数能整除它,之间不可能再有任何合数或质数能整除它了,因为最小的能整除它的合数已经是他本身了。
因此,我们只要枚举数字,一旦发现它可以被n整除,就直接输出,不必判断是否为质数!
代码附上
#include <iostream>
#include <cstdio>
using namespace std;
long a,c;
int main()
{
cin>>c;
for(a=2;a<=c;a++)
{
if(c%a==0)
{
cout<<c/a;
break;
}
}
return 0;
}