质因数分解
第一题 质因数分解
#include<bits/stdc++.h>
using namespace std;
int n,x,y;
int main(){
cin>>n;
for(int i=2;i<=n;i++)
{
if(n%i==0)
{
x=n/i;
y=max(x,i);
break;
}
}
cout<<y;
return 0;
}
本来想用线性筛法,可是因为数据过大,用的话,数组开不了那么多。于是花了那么多时间编了线性筛发不能过之后,还是直接改成了最直接的枚举。
(花了那么多时间编筛法,最后一点用都没有。嗯,我一点都不心痛!!!)
不过也是有条件的。
因为n是两个不同的质数的乘积,那么n必定为质数,所以只需要从2一个个除,反正除了那两个数,也不可能有其他数能够被n整除。
所以这题到底在考什么?(确定不是为了凑数?)
或许就是考,叫我们不要想多,想复杂吧,也只有这样理解了!!!!!!!!
嗯,一定是的!!!!!