辗转相除(求最大公约数及最小公倍数)

来源:互联网 发布:java的输入输出流 编辑:程序博客网 时间:2024/06/12 19:58

求a与b的最大公约数(假设a大于b),a除以b,若等于零,则b就是最大公约数,若不为零,则将b的值赋予a,再将原先的a的值除以b的值的余数赋予b,重复以上步骤,直至a除以b的值为零,此时b的值就是最大公约数。而a,b两数的积除以最大公约数则就是最小公倍数。

#include <stdio.h>gcd(int m, int n){int temp;while(m%n){temp = m;m = n;n = temp%n;}return n;}main(){int a, b;scanf("%d %d", &a, &b);if(a >= b) printf("%d", gcd(a, b));else printf("%d", gcd(b, a));}


原创粉丝点击