NOIP 2012 普及组 第一题,如果细想,确实很水……
第一,不用挨个分解质因数;
第二,不用判断素数;
唯一分解定理:一个合数能且只能分解为一组素数的乘积。如果一个数是两个不同的素数的乘积,那么除了1和他本身和这两个素数外,它没有别的约数了。
Tips:从小往大找要比从大往小找快。
附代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
for(int i = (int)sqrt(n)+1; i < n; i ++){
if(n%i == 0){
printf("%d\n", i);
break;
}
}
return 0;
}