문제: app.codility.com/programmers/lessons/12-euclidean_algorithm/common_prime_divisors/
int Z = A.Length;
int result = 0;
for (int i = 0; i < Z; i++)
{
if (isSameDivisors(A[i], B[i]))
{
result++;
}
}
return result;
static bool isSameDivisors(int a, int b)
{
int gcd_ab = getGCD(a, b);
int gcd_a = 0;
int gcd_b = 0;
while (gcd_a != 1)
{
gcd_a = getGCD(a, gcd_ab);
a /= gcd_a;
}
while (gcd_b != 1)
{
gcd_b = getGCD(b, gcd_ab);
b /= gcd_b;
}
return (a == 1 && b == 1) ? true : false;
}
static int getGCD(int N, int M)
{
if (M == 0) return N;
return getGCD(M, N % M);
}
'공부하자 > Codility' 카테고리의 다른 글
[Codility] Lesson12. ChocolatesByNumbers (C#) (0) | 2020.11.27 |
---|---|
[Codility] Lesson11. CountSemiprimes (C#) (0) | 2020.11.27 |
[Codility] Lesson11. CountNonDivisible (C#) (0) | 2020.11.27 |
[Codility] Lesson10. Peaks (C#) (0) | 2020.11.27 |
[Codility] Lesson10. MinPerimeterRectangle (C#) (0) | 2020.11.27 |