输入两个数,求最大公约数和最小公倍数。(用两种方法:辗转相除法和普通方法)。

//辗转相除法

int num1 = 48;

int num2 = 20;

int n1 = num1;  //n1存被除数

int n2 = num2; //n2存除数

int n3 = n1 % n2;

int n4 = n1 * n2;

while (n3 != 0) {

n1 = n2;

n2 = n3;

n3 = n1 % n2;

}

Console.WriteLine ("最大公约数:" + n2);

Console.WriteLine ("最小公倍数:" + num1 * num2 / n2);


// 老师讲的普通方法

int num1 = 48;

int num2 = 20;

int pul = num1 * num2;

// 取两者之间的最小值

int min = num1 < num2 ? num1 : num2;

int n = 1;

// for 循环 递减匹配余数 知道余数为0

for (int i = min; i >= 1; i--) {

// 两个数 余数为0

if ((num1 % i == 0) && (num2 % i == 0)) {

n = i;

// i递减 当取到第一个值是 停止语句执行

break;

}

}

Console.WriteLine ("最大公约数:" + n);

Console.WriteLine ("最小公倍数:" + pul / n);

你可能感兴趣的:(输入两个数,求最大公约数和最小公倍数。(用两种方法:辗转相除法和普通方法)。)