题目链接:[NOIP2012 普及组] 质因数分解 - 洛谷
题目难度:入门
涉及知识点:枚举(优化)
题意:
输入样例:21
输出样例:7
分析:枚举到小因数,再除a,就可得大因数
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a;
ios::sync_with_stdio(false);//加快cin,cout
cin>>a;
for(int i=2; i<=sqrt(a); i++){/*优化,只需枚举到a的平方根。
依据:如21,==3*7,sqrt(21)再两因数中间。
极端思想:4==2*2,sqrt(4)==2,仍在两数之间,所以枚举到sqrt(a)之中必有一小的因数。*/
if(a%i==0)cout<<a/i;//用a/小因数得大因数
}
return 0;
}
总结:枚举到小因数,再除a,就可得大因数