原题传送门
0.前言 今天无意中看到了这道题,就又想做一做(我才不说我为了刷咕值),结果却意外翻车,特此纪念
1.思路
这是一道非常简单的数学题。主要考察的就是唯一分解定理
内容如下:算术基本定理(唯一分解定理)可表述为:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积。
这提示我们题目中既然保证有解,那解一定是唯一的
2.代码
#include<iostream>
#include<cstdio>
using namespace std;
inline void read(int &x){ //快读
int f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=x*10+ch-'0';
ch=getchar();
}
x*=f;
}
int n;
int main(){
read(n);
for(int i=2;i<=n;i++){ //从小到大遍历,第一个输出的一定是小的那个
if(n%i==0){
printf("%d",n/i); //要求输出较大的那个
return 0;
}
}
return 0;
}