trang chủ / bài tập / divsummin

Tổng các ước

Đề bài

Mô tả

Với số nguyên dương n, ký hiệu d(n) là tổng tất cả các ước dương của n:

d(n)=knk.

Ví dụ: d(1)=1, d(4)=1+2+4=7, d(6)=1+2+3+6=12.

Cho số nguyên c, hãy tìm số nguyên dương n nhỏ nhất sao cho d(n)=c. Nếu không tồn tại số n như vậy, in ra 1.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên t: số lượng truy vấn.
  • Mỗi dòng trong t dòng tiếp theo chứa một số nguyên c.

Dữ liệu ra

Với mỗi truy vấn, in ra trên một dòng:

  • 1 nếu không tồn tại n nào thỏa d(n)=c;
  • ngược lại, in ra số n nhỏ nhất thỏa mãn.

Ràng buộc

  • 1t104
  • 1c107

Ví dụ

Input Output Giải thích
12
1
2
3
4
5
6
7
8
9
10
39
691
1
-1
2
3
-1
5
4
7
-1
-1
18
-1
d(1)=1 nên với c=1 đáp án là 1.
Không có n nào có d(n)=2 nên in 1.
d(2)=1+2=3 nên với c=3 đáp án là 2.
d(4)=1+2+4=7 nên với c=7 đáp án là 4.
d(18)=1+2+3+6+9+18=39 và không có số nhỏ hơn thỏa nên với c=39 đáp án là 18.
4
2
12
13
31
-1
6
9
16
Không có n nào có d(n)=2.
d(6)=1+2+3+6=12.
d(9)=1+3+9=13.
d(16)=1+2+4+8+16=31, nhỏ hơn d(25)=31 nên đáp án là 16.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0