题目描述:
给定N个正整数A[1], A[2],…, A[N],求模数M使得A[1] % M = A[2] % M = …. = A[N] % M。找出所有满足要求的M。
输入:
第1行:1个整数N
接下来N行,每行一个正整数
输出:
第1行:若干个整数,表示答案, 输出数据按照升序排列,中间用一个空格符间隔。
样例输入:
3
6
34
38
样例输出:
2 4
提示:
【样例说明】
当M=2时,所有数的余数为0
当M=4时,所有数的余数为2
【数据范围】
30%的数据: A[i] <= 10^4
100%的数据:N <= 100, A[i] <= 10^14
一般人拿到这道题,都会直接枚举两数差,再枚举因子,程序如下:
#include<cstdio>
#include<cmath>
bool flag,c;
int n;
long long a[105],b[105],minn=100000000000000;
int main()
{
scanf("%d %lld",&n,&a[1]);
for(int i=2;i&l