C语言求最大公约数和最小公倍数
方法一: 辗转相除法 有两整数a和b: ① a%b得余数c ② 若c=0,则b即为两数的最大公约数 ③ 若c≠0,则a=b,b=c,再回去执行① 例如求27和15的最大公约数过程为: 27÷15 余12 15÷12余3 12÷3余0 因此,3即为最大公约数
#include <stdio.h>
int main()
{
int n,m;
while(scanf("%d %d",&n,&m)!=EOF)
{
int c = n;
while(m != 0)
{
c = n%m;; n = m; m = c; } printf("%d\n",n); } }
方法二: 调用函数
#include <bits/stdc++.h> using namespace std; int main() { int N, M ,yueshu,gongbeishu; while(~scanf("%d %d", &N, &M)) { yueshu=__gcd(N, M); gongbeishu=(N*M)/yueshu; printf("%d %d\n", yueshu,gongbeishu); } return 0; }