divisors - Số lượng ước chung
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: ngoclannt

Cho dãy số n số nguyên dương, A = (a1, a2, …, an). Hãy đếm số lượng các số nguyên dương x là ước số chung của tất cả các số trong dãy. Nói cách khác, bạn phải tìm số lượng các ước số chung của tất cả các phần tử trong dãy.

Ví dụ: nếu dãy A = (2, 4, 6, 2, 10), thì các số 1 và 2 là ước của tất cả các phần tử trong dãy (vì vậy câu trả lời cho trường hợp này là 2).

Input:

Dòng đầu tiên của đầu vào chứa số nguyên T (1 <= T <= 50) là số bộ dữ liệu vào. Theo sau là các Bộ dữ liệu vào, mỗi bộ dữ liệu gồm 2 dòng:

  • Dòng 1 chứa một số nguyên n (0 <= n <= 105) là số phần tử trong dãy A.
  • Dòng 2 chứa n số nguyên dương a1, a2, …, an (1 <= ai <= 1012) mô tả các phần tử của dãy A.

Các số cùng dòng cách nhau bởi dấu cách. Tổng các giá trị của n trong tất cả các bộ dữ liệu vào không quá 105.

Output:

Ứng với mỗi Bộ dữ liệu vào, chương trình của bạn cần in ra một dòng chứa số nguyên dương x là số lượng các ước số chung của tất cả các phần tử trong dãy A tương ứng.

Ví dụ

  • input
    2
    5
    1 2 3 4 5
    6
    6 90 12 18 30 18
    output
    1
    4
  • input
    5
    1
    37
    1
    1
    1
    1
    1
    33
    1
    41
    output
    2
    1
    1
    4
    2
Back to Top