求助

P1075 [NOIP2012 普及组] 质因数分解

双重循环,不超时才怪呢
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


|