10分求助

P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题

你这个算法本身就不对,数据范围到 $10^5$,你还用双重循环,肯定会超时。 ```c int gcd(int a,int b){//最大公因数 if(b==0) return a; gcd(b,a%b); } ``` 改为 ```c int gcd(int a,int b){//最大公因数 if(b==0) return a; else return gcd(b,a%b); } ``` @[DougNo1](/user/915921)
by lij123 @ 2024-04-23 18:33:33


其实用 ```cpp __gcd(); ``` 就可以
by fanjiayu666 @ 2024-04-25 13:59:54


```cpp #include <bits/stdc++.h> using namespace std; int x,y,cnt; int main(){ cin>>x>>y; for(int i=2;i<=y;i++){ if(x*y%i!=0)continue; int j=x*y/i; if(__gcd(i,j)==x&&i*j/__gcd(i,j)==y){ cnt++; } } cout<<cnt; } ``` 勿抄
by fanjiayu666 @ 2024-04-25 14:00:36


|