Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ cho phép chia chung của hai số?

Ở đây chúng ta sẽ xem làm thế nào chúng ta có thể nhận được số ước chung của hai số. Chúng ta sẽ không tìm tất cả các ước chung, nhưng chúng ta sẽ đếm xem có bao nhiêu ước chung. Nếu hai số giống như 12 và 24, thì các ước chung là 1, 2, 3, 4, 6, 12. Vì vậy, có 6 ước chung, vì vậy câu trả lời sẽ là 6.

Thuật toán

countCommonDivisor (a, b)

begin
   count := 0
   gcd := gcd of a and b
   for i := 1 to square root of gcd, do
      if gcd is divisible by 0, then
         if gcd / i = i, then
            count := count + 1
         else
            count := count + 2
         enf if
      end if
   done
   return count
end

Ví dụ

#include<iostream>
#include<cmath>
using namespace std;
int gcd(int a, int b) {
   if (a == 0)
      return b;
   return gcd(b%a, a);
}
int countCommonDivisors(int a,int b) {
   int gcd_val = gcd(a, b); //get gcd of a and b
   int count = 0;
   for (int i=1; i<=sqrt(gcd_val); i++) {
      if (gcd_val%i==0) { // when'i' is factor of n
         if (gcd_val/i == i) //if two numbers are same
            count += 1;
         else
            count += 2;
      }
   }
   return count;
}
main() {
   int a = 12, b = 24;
   cout << "Total common divisors: " << countCommonDivisors(a, b);
}

Đầu ra

The differences array: 6 5 10 1