双重循环,不超时才怪呢
by ybc2025chenyuyang @ 2023-07-29 22:12:38
核心代码
```cpp
for(int i=2;i<sqrt(n);i++){
if(n%i==0){
cout<<n/i;
break;
}
}
```
by ybc2025chenyuyang @ 2023-07-29 22:14:08
你想,如果一个质数不是他的因数,那么这个质数的倍数当然不是它的因数,这个代码本质上是在筛全部数,实则就是在筛质数
by ybc2025chenyuyang @ 2023-07-29 22:15:29
这题本身就说,输入的数是两个质数的乘积,所以只要找到第一个因子,就可以输出较大的因子了.
代码如下:
```cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,j,i;
scanf("%d",&n);
for(i=2;i<sqrt(n);i++){
if(n%i==0){
j=n/i;
break;
}
}
if(i>j)printf("%d",i);
else printf("%d",j);
return 0;
}
```
by luogu10086 @ 2023-07-29 22:19:51
@[luogu10086](/user/935058) 懂了谢谢
by Eva_81418 @ 2023-07-30 20:36:17
@[ybc2025125chenyuyang](/user/807952) 谢谢
by Eva_81418 @ 2023-07-30 20:41:29