题目链接:https://www.luogu.com.cn/problem/P1075
分类:简单数学题;
核心思想:唯一分解定理(数论):惟一分解定理_百度百科 (baidu.com);(简而言之就是一个数能且只能分解成唯一对质数的乘积);
解题思路:根据题意得,如若要找较大的质数不妨转化成要找得最小的质数;我们知道1和这个数本身肯定要排除(质数的定义:质数定义为在大于1的自然数中,除了1和它自身外,不能整除其他自然数的数叫做质数);所以只需要将该数除与(2 - n-1)找出最小的那个可被整除的质数,再用输入的样例数除以最小的可被整除的质数即可;(根据唯一分解定理,只存在唯一质数解;也无需去考虑是否会被其他非质数整除,因为如果一个数n是两个不同质数的乘积,那么这个数n的因子只有可能为1和这个数n本身以及这两个质数因子);
代码如下(c++):
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n;
cin>>n;
for(long long i=2 ;i<n;i++)
{
if(n%i==0)
{
cout<<n/i;
break;
}
}
return 0;
}