1 条题解

  • 0
    @ 2025-2-21 20:04:50

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    
    int T, n, a[109], b[109];
    
    int gcd(int x, int y) {
    	return y == 0 ? x : gcd(y, x % y);
    }
    
    int main() {
    	cin >> T;
    	while (T --) {
    		cin >> n;
    		for (int i = 1; i <= n; i ++) cin >> a[i];
    		sort(a + 1, a + 1 + n);
    		for (int i = 2; i <= n; i ++) b[i - 1] = a[i] - a[i - 1];
    		
    		int x = b[1];
    		for (int i = 1; i < n; i ++) {
    			x = gcd(x, b[i]);
    		}
    		
    		int t = sqrt(x), ans = 0;
    		for (int i = 1; i <= t; i ++) {
    			if (x % i == 0) {
    				ans += 2;
    			}
    		}
    		if (t * t == x) {
    			ans --;
    		}
    		cout << ans - 1 << endl;
    	}	
    
    	return 0;
    }
    
    
    • 1

    信息

    ID
    1033
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者