本题全部素材包括题解来源于洛谷,
本题不难,最主要的是一条定理,那些年被遗忘的小学数学
题目描述
已知正整数nn是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入格式
一个正整数nn。
输出格式
一个正整数pp,即较大的那个质数。
最主要的是理解题意,我刚开始就跑偏了,心想,如果输入16怎么办,可是开头第一句话就是
正整数nn是两个不同的质数的乘积
,所以理解题意很重要
首先要知道唯一分解定理:一个数能且只能分解为一组质数的乘积。可知,若输入的数满足题目条件,他就只能分解为两个质数的乘积。所以在比他小且大于1的自然数中,只有那两个数能整除它,之间不可能再有任何合数或质数能整除它了,因为最小的能整除它的合数已经是他本身了。
那么说到这里,编码容易实现
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
for(int i=2;i<=n;++i)
if(n%i==0)
{
printf("%d",n/i);
return 0;
}
}