B4170 [BCSP-X 2024 6 月小学高年级组] 最小质因子
欢迎报名洛谷网校,期待和大家一起进步!
本题考察质数、质因数分解。
我们从小往大枚举
我们应当怎么办呢?实际上,我们的
我们还能再加加速,枚举的过程中,先把偶数判掉,这样我们只用判断奇数(例如
参考代码:
cin >> n;
// 如果 n 能被 2 整除,则 2 为最小质因子
if(n % 2 == 0){
cout << 2 << "\n";
continue;
}
// 从 3 开始遍历奇数
bool found = false;
for(long long i = 3; i * i <= n; i += 2){
if(n % i == 0){
cout << i << "\n";
found = true;
break;
}
}
// 如果没有找到任何因子,则 n 为质数,其最小质因子为 n 本身
if(!found)
cout << n << "\n";