求最大公约数就可以了:int a = 100; int b = 8; if(a < b) { int tmp = a; a = b; b = tmp; } int c; while((c = a % b) != 0) { a = b; b = c; } System.out.println(b == 1);//b == 1 表示互质
楼上原理是碾转相除法俩自然数 a ba 对b取余得cb 对 c 取余得d c 对 d 取余得e 如果下去如果最终那个余数等0 ,则最大公约数是前一个数 ,等1 则互质
明白了, class huzhi{ public static void main(String []args){ int a = 83; int b = 41; if(a < b) { int tmp = a; a = b; b = tmp; } int c; while((c = a % b) != 0) { a = b; b = c; } System.out.println(b == 1);//b == 1 表示互质 }} 这样是对的……下面这个我这样写求最大公倍数也可以吧. public class huzhi{ public static void check(int m,int n){ int k=0; for(k = m;k%n!=0;k+=m); if(k==m*n){ System.out.print(m+"与"+n+"为互质数"); }else{ System.out.print(m+"与"+n+"不为互质数"); } }
public static void main(String[] args) { check(93,19); } }
int b = 8;
if(a < b) {
int tmp = a;
a = b;
b = tmp;
}
int c;
while((c = a % b) != 0) {
a = b;
b = c;
}
System.out.println(b == 1);//b == 1 表示互质
c 对 d 取余得e
如果下去如果最终那个余数等0 ,则最大公约数是前一个数 ,等1 则互质
class huzhi{
public static void main(String []args){
int a = 83;
int b = 41;
if(a < b) {
int tmp = a;
a = b;
b = tmp;
}
int c;
while((c = a % b) != 0) {
a = b;
b = c;
}
System.out.println(b == 1);//b == 1 表示互质
}}
这样是对的……下面这个我这样写求最大公倍数也可以吧.
public class huzhi{
public static void check(int m,int n){
int k=0;
for(k = m;k%n!=0;k+=m);
if(k==m*n){
System.out.print(m+"与"+n+"为互质数");
}else{
System.out.print(m+"与"+n+"不为互质数");
}
}
public static void main(String[] args) {
check(93,19);
}
}