《演算法》第一章——判斷兩個整數是否互質
阿新 • • 發佈:2019-01-26
判斷兩個整數互質的方法
概念:公約數只有1的兩個數叫做互質數。根據互質數的概念可以對一組數是否互質進行判斷。如:9和11的公約數只有1,則它們是互質數。
求商判斷法:用大數除以小數,如果除得的餘數與其中較小數互質,則原來兩個數是互質數。如:317和52,317÷52=6……5,因餘數5與52互質,則317和52是互質數。
#include<iostream> using namespace std; bool isCoprime(int x,int y) { if(x==1 && y==1)//1和1互質 return true; else if(x<=0 || y<=0 || x==y)//非正整數都不存在互質的說法 return false; else if(x==1 || y==1)//1和任何正整數都互質 return true; else { int tmp=0; //使用求商判斷法,如果輸入的x<y,第一次迴圈會交換x和y的位置 while(true) { tmp=x%y; if(tmp==0) { break; } else { x=y; y=tmp; } } if(y==1) //最大公約數為1,所以互質 return true; else //最大公約數大於1,所以不互質 return false; } } int main(void) { bool ret=isCoprime(19,6); cout<<ret<<endl; return 0; }