C++函数判断俩数是否互质??

2025-06-28 01:31:37
推荐回答(2个)
回答1:

// 只有1为公约数的两个正整数,两个整数才会互质
// 也就是说两个整数的最大公约数为1,即可判断两个正整数互质
bool isrp(int a, int b){
if(a <=0 || b<=0 || a==b){ // 互质整数不能小于或等于0
return false;
}else if(a==1 || b==1){ // 两个正整数中,只有其中一个数值为1,两个正整数为互质数
return true;
}else{
// 求出两个正整数的最大公约数
while(1){
int t = a%b;
if(t == 0){
break;
}else{
a = b;
b = t;
}
}
if( b > 1){ // 如果最大公约数大于1,表示两个正整数不互质
return false;
}else{ // 如果最大公约数等于1,表示两个正整数互质
return true;
}
}
}

回答2:

#include
using namespace std;
int maxy(int a,int b)
{
int min,max,r;
max=a>b?a:b;
min=a if(max%min==0)
return min;
else 
{
r=max%min;
max=min;
min=r;

}
return min;

}
int main()
{
int a,b,c;
cin>>a>>b;
c= maxy(a,b);
if(c==1)
printf("两个数互质\n");
else 
printf("两数不互质\n");
return 0;

}