c语言练习77:公因⼦的数⽬

公因⼦的数⽬

题⽬描述:

给你两个正整数 a 和 b ,返回 a 和 b 的公因⼦的数⽬。

如果 x 可以同时整除 a 和 b ,则认为 x 是 a 和 b 的⼀个公因⼦ 。

• ⽰例 1:

输⼊:a = 12, b = 6

输出:4

解释:12 和 6 的公因⼦是 1、2、3、6 。

• ⽰例 2:

输⼊:a = 25, b = 30

输出:2

解释:25 和 30 的公因⼦是 1、5 。

算法思路:

1. 定义⼀个变量 m ⽤来记录 a 和 b 的最⼩值;

2. 定义⼀个变量cnt,将其初始化为0;

3. 以 m 为上限,1为下限遍历整数,若当前数同时整除 a 和 b ,则 cnt 的值加⼀;

4. 返回 cnt 。

int commonFactors(int a, int b) {
	//定义变量记录最⼩值
	int m = (a > b ? a : b);
	//定义变量记录公因⼦个数
	int cnt = 0;
	//从m开始,从⼤到⼩遍历整数
	while (m >= 1) {
		//判断当前数是否同时整除a和b
		if (a % m == 0 && b % m == 0) {
			//若同时整除则记录个数
			cnt++;
		}
		//当前数处理完成,遍历下⼀个数
		m--;
	}
	//返回公因⼦个数
	return cnt;
}

你可能感兴趣的:(c语言,算法,数据结构)