用java写个判断两数是否互质的代码?

karl108 2007-11-16 01:19:49
希望哪位大虾给写个判断两个数互质的代码?
...全文
3313 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxz7531 2007-11-19
  • 打赏
  • 举报
回复
两个自然数a和b的最大公约数和最小公倍数分别是c和d的话

则a*b=c*d

可以用求最大公约数的方法求最小公倍数
karl108 2007-11-16
  • 打赏
  • 举报
回复
明白了,
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);
}
}
cxz7531 2007-11-16
  • 打赏
  • 举报
回复
楼上原理是碾转相除法

俩自然数 a b

a 对b取余得c

b 对 c 取余得d
c 对 d 取余得e


如果下去如果最终那个余数等0 ,则最大公约数是前一个数 ,等1 则互质
ChDw 2007-11-16
  • 打赏
  • 举报
回复
求最大公约数就可以了:

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 表示互质

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧