公因⼦的数⽬
题⽬描述:
给你两个正整数 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和bif (a % m == 0 && b % m == 0) {//若同时整除则记录个数cnt++;}//当前数处理完成,遍历下⼀个数m--;}//返回公因⼦个数return cnt;
}