Điểm:
400 (p)
Thời gian:
1.0s
Bộ nhớ:
1023M
Input:
bàn phím
Output:
màn hình
Khôi có một mảng số tự nhiên \(A\) có \(N\) phần tử. Anh ấy phải tìm ra tất cả các số đặc biệt \(K\).
Biết rằng số đặc biệt \(K\) phải thỏa mãn những điều sau:
1) K>1
2) A[1]%K = A[2]%K = A[3]%K = ... = A[N]%K
Hãy giúp Khôi tìm ra tất cả các số đặc biệt \(K\).
Input
- Dòng đầu tiên chứa \(1\) số nguyên dương \(N (2 ≤ N ≤ 10^5)\)
- Gồm \(N\) dòng, dòng \(i\) chứa giá trị của \(A_i (1 ≤ A_i ≤ 10^9)\)
- Các số trong mảng \(A\) khác nhau đôi một
Dữ liệu Input đảm bảo có ít nhất \(1\) số \(K\) thỏa mãn và nhiều nhất 106106 số \(K\) thỏa mãn
Output
- Tất cả các số đăc biệt K theo thứ tự tăng dần. (Mỗi số trên 1 dòng)
Example
Test 1
Input
3
38
6
34
Output
2
4
Bình luận
Anh có thể chứng minh rằng a[i]%k = a[j]%k <=> k là ước của a[i] - a[j] không ạ?
Cách 2: \(a_i \equiv a_j \pmod k \Leftrightarrow (a_i - a_j) \equiv 0 \pmod k \Leftrightarrow (a_i - a_j) \times n = k (n \in Z)\)
@huanhoang2004, chứng mình như sau:
Đặt \(a[i]\text{%}k=a[j]\text{%}k=t\), khi đó tồn tại các số nguyên \(m,n\) sao cho \(a[i]=mk+t,a[j]=nk+t\).
\(\implies a[i]-a[j]=(m-n)k\implies k|(a[i]-a[j])\). Ta chứng điều phải chứng minh
Anh có thể chia \(level\) cho \(comment\) được hông anh. Anh để ngang hàng vậy đôi khi người đọc khó hiểu anh :v
Ý bạn là sao ? Mình ghi kiểu linear, nghĩ sao ghi vậy 🙂
lmao :v \(linear\) this thì cũng có \(recursion\) that chứ anh