编辑代码

import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
class Main {
	public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
	    int t = scanner.nextInt();
        List<DataGroup> allDataGroups = new ArrayList<>();
        for (int i = 0; i < t; i++){
            int n = scanner.nextInt(); // 第一个整数
            int k = scanner.nextInt(); // 第二个整数
            scanner.nextLine();
            String[] s = scanner.nextLine().split(" ");
            int[] strings = new int[n];
            for (int j = 0; j < n; j++) {
                strings[j] = Integer.parseInt(s[j]);
            }
            DataGroup dataGroup = new DataGroup(strings, k);
            allDataGroups.add(dataGroup);
        }
		scanner.close();
        for (DataGroup dataGroup : allDataGroups) {
            ifSame(dataGroup.getData(), dataGroup.getX());
        }
	}
    public static void ifSame(int[] strings,int k){
        int gcd = findGCD(strings);
            int count = 0;
            for(int j=0;j<strings.length;j++){
                count += strings[j]/gcd-1;
            }
            if(count <= k){
                System.out.println("YES");
            }else{
                System.out.println("NO");
            }
    }
    public static int gcd(int a,int b){
        if(b!=0){
            int temp = 1;
        while(temp!=0){
            temp=a%b;
            a=b;
            b=temp;
        }
        return a;
        }
        return -1;
        
    }
    public static int findGCD(int[] nums){
        int result = nums[0];
        for(int i=1;i<nums.length;i++){
            result = gcd(result,nums[i]);
        }
        return result;
    }
    static class DataGroup {
        private int[] data;
        private int x;

        public DataGroup(int[] data, int x) {
        this.data = data;
        this.x = x;
        }

        public int[] getData() {
        return data;
        }

        public int getX() {
        return x;
        }
    }
}