trang chủ / đề bài / daklak_ts10_23_cau4

Phép chia dư

Đề bài

Mô tả

Tham gia hoạt động trại hè Toán học, bạn Minh được giáo viên hướng dẫn về phép toán chia lấy dư. Cụ thể như sau: nếu cho trước hai số nguyên dương X và Y thì phép chia lấy dư của X đối với Y (XmodY) là số dư của phép chia X cho Y. Ví dụ: 10mod3=1 vì 10 chia 3 có thương bằng 3 và số dư là 1. Với phép toán mới này, bạn Minh mong muốn được áp dụng vào những bài toán cụ thể. Bạn Phương thì đam mê những dãy số, hai bạn đã cùng nhau nghiên cứu bài toán thú vị liên quan đến phép chia lấy dư. Bài toán như sau:

Cho một dãy số gồm N số nguyên dương a1,a2,…,aN. Tìm tất cả các số nguyên dương K sao cho các phần tử trong dãy số đã cho khi chia K đều có cùng số dư.

Yêu cầu: Hãy viết chương trình tìm tất cả các số nguyên dương K lớn hơn 1 sao cho mọi phần tử trong dãy số khi chia K luôn có cùng số dư, tức là a1modK=a2modK=⋯=aNmodK.

Dữ liệu vào

  • Dòng thứ nhất chứa số nguyên dương N (2≤N≤100) là số lượng phần tử của dãy số.
  • Dòng thứ hai chứa dãy số nguyên dương a1,a2,…,aN (2≤ai≤109) trên cùng một dòng, mỗi số cách nhau một khoảng trắng.

Các phần tử của dãy có thể trùng nhau, nhưng dữ liệu đảm bảo dãy có ít nhất hai phần tử khác nhau (nên số lượng số K thỏa mãn là hữu hạn).

Dữ liệu ra

In ra một dòng gồm các số K theo thứ tự tăng dần sao cho tất cả các phần tử ai trong dãy khi chia cho K đều có cùng số dư, các số cách nhau một khoảng trắng. Nếu không tìm được số K thỏa mãn thì in ra −1.

Ràng buộc

  • 2≤N≤100.
  • 2≤ai≤109.
  • Các ai không đồng thời bằng nhau.

Ví dụ

Input Output Giải thích
3
47 77 35
2 3 6 Các số 47,77,35 khi chia cho 2 cùng dư 1, khi chia cho 3 cùng dư 2, khi chia cho 6 cùng dư 5.
4
5 2 14 7
-1 Không tìm được số K nào thỏa mãn, in ra −1.
3
10 10 46
2 3 4 6 9 12 18 36 Ví dụ thêm. Hai số 10 trùng nhau. Các số 10,10,46 khi chia cho mỗi K trong danh sách đều cùng dư, chẳng hạn chia cho 36 cùng dư 10, chia cho 4 cùng dư 2.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0