题目传送门
https://www.luogu.com.cn/problem/P1075
https://www.luogu.com.cn/problem/P1075
找出n的最大因子
线性查找第一个x,使n%x为0
一、正着来
从2开始(1不是质数),至sqrt(n)
可以不用质数判断
如果现在判断出了一个合数,一定是不合法的,因为这个合数肯定会除尽前面比它小的质数
因为是要求最大的数,所以输出的应该是n除以这个质数
然后直接跳出
代码:
#include <bits/stdc++.h>
using namespace std;
int n;
int main () {
cin >> n;
for (int i = 2; i * i <= n; i++)
if (n % i == 0) {
cout << n / i;
break;
}
return 0;
}
二、反着来
从n除以2开始(大于n除以2时不可能被n除尽

最低0.47元/天 解锁文章
1152

被折叠的 条评论
为什么被折叠?



