Em code để giải bài toán này:
và code của em đây ạ:
#include<stdio.h>
int greatestCommonPrimeDivisor(int a, int b);
int check_prime(int num);
int main()
{
int a, b;
printf("Nhap a, b: ");
scanf("%d" "%d",&a,&b);
printf("\nKet qua la %d",greatestCommonPrimeDivisor(a,b));
}
int greatestCommonPrimeDivisor(int a, int b)
{
int min, result = -1, fact = 1;
if ((a<2)||(b<2)||(a>150)||(b>150))
return result;
else
{
if (a >= b)
min = b;
else
min = a;
for (int i=2;i<=min;++i)
{
if ((a%i==0)&&(b%i==0))
{
fact = check_prime(i);
if (fact == 1)
result = i;
}
}
return result;
}
}
int check_prime(int num) //Ham kiem tra co phai so nguyen to khong
{
int count = 0;
for (int i=2;i<=num/2;++i)
{
if (num%i == 0)
{
count ++;
break;
}
}
if (count)
return 0;
else
return 1;
}
Em test case trên codelearn chỉ được 7/8 case, mọi người chỉ lỗi giúp em với ạ! Tks mọi người!