9 solutions
-
1
#include<bits/stdc++.h> using namespace std; int main(){ int m,n; cin>>m>>n; for(int i=2;i<m;i++){ if(i%m==0&&i%n==0){ cout<<"gcd="<<i; return 0; } } }
交了可以
死过 每日批判 -
1
#A1207. 求最大公约数问题
真有点问题Plan A:简单粗暴の算法
思想:取m,n较小者存入gcd,如果gcd!=(m,n),则gcd减1,循环执行直到满足条件
模板:
for(gcd=/*(x,y较大者)*/;gcd>=1;--gcd) { if(x,y都能整除gcd) break; }
这种方法比较好理解,好写,但是题目给的数据范围超大(<=10亿),较大数容易超时(qwq)
Plan B:涉及数学の算法
这种方法利用辗转相除求最大公因数,和Plan A相比,比较省时间和内存
模板:
int g; while(g!=0) { g=将两个数相除得到余数; 被除数=除数; 除数=g; }
算法执行结束时,除数就是(x,y)
至于完整算法嘛……
自!己!写!去!
- 1
Information
- ID
- 693
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 194
- Accepted
- 77
- Uploaded By