【问题描述】判断两个整数m和n是否互质(即是否有公共的因子)(m!=1,n!=1)。方法是:用2到t(t取m和n中较小的那个数)之间的数分别去除m和n,若m和n能同时被某个数除尽,则m和 n不互质;否则它们互质。
例如,若输入187和85,则应输出No(表示它们不互质,它们有公因子17)。若输入89和187,则应输出yes(表示它们互质)。
#includeusing namespace std; int main() { int m,n,t; cin>>m>>n; //先输入m,n //先用if else语句判断m n哪个数更小,令最小的赋值到t if(m>n) { t=n; } else { t=m; } //先设置个变量初始值为0,代表无公因子。若m,n互质若有公因子使result=1。 int result=0; //用for从2查到t,看是否有公因子 for(int i=2;i<=t;i++) { if(m%i==0 && n%i==0) //若该数为公因子,则分别能被m,n整除,即m,n取模该数为零 { result=1; } } //用if语句判断,如果他们不互质result=1输出No,反之他们互质则输出Yes if(result==1) { cout<<"No"; } else if(result==0) { cout<<"Yes"; } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)