有没有大佬帮忙看看为什么无法排除这两个异常数据6和30.
查看原帖
有没有大佬帮忙看看为什么无法排除这两个异常数据6和30.
625009
ivannasakhno楼主2021/12/10 01:15

能不能麻烦大佬帮我看看,现在问题就是没办法排除最大公约数不是输入的a,但却它的公因数里却包含a的情况。

输入示例3 ,60 结果应该是:3,60 12,15 15,12 60 3 但是我的输出却是:3,60 6 30 12,15 15,12 30 6 60 3 我标粗体的地方就是出问题的两个数据,百思不得其解,还专门判断他的公约数了结果还是排除不掉。

public class Main {
	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		int a=scan.nextInt(),b=scan.nextInt(),c=0,d=0;
		for(int i = 1;i<10000;i++) {
			for(int j  = 1;j<10000;j++) {
				if(i*j/a==b&&i%a==0&&j%a==0&&b%i==0&&b%j==0) {//筛选条件,选出公约数和公倍数符合输入的数
					for(int m=Math.min(i,j);m>0;m--) {//再次判断,去掉最大公约数不符合输入的数
						if(i%m==0&&j%m==0&&m==a) {//求出两个数的最大公约数并且和输入的数比较
							System.out.println(i+" "+j);
							
						}
					}
				}
			}
		}
		
		
		}
		
	}
2021/12/10 01:15
加载中...