Skip to content

Latest commit

 

History

History

2427

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Given two positive integers a and b, return the number of common factors of a and b.

An integer x is a common factor of a and b if x divides both a and b.

 

Example 1:

Input: a = 12, b = 6
Output: 4
Explanation: The common factors of 12 and 6 are 1, 2, 3, 6.

Example 2:

Input: a = 25, b = 30
Output: 2
Explanation: The common factors of 25 and 30 are 1, 5.

 

Constraints:

  • 1 <= a, b <= 1000

Related Topics:
Math, Enumeration, Number Theory

Similar Questions:

Solution 1.

// OJ: https://leetcode.com/problems/number-of-common-factors
// Author: github.com/lzl124631x
// Time: O(Sqrt(Gcd(a, b)))
// Space: O(1)
class Solution {
public:
    int commonFactors(int a, int b) {
        int n = gcd(a, b), ans = n == 1 ? 1 : 2;
        for (int i = 2; i * i <= n; ++i) {
            if (n % i) continue;
            ++ans;
            if (i != n / i) ++ans;
        }
        return ans;
    }
};