Antidivizor

Time limit: 0.2s Memory limit: 512MB Input: antidivizor.in Output: antidivizor.out

Lui Fibo îi plac numerele care nu se potrivesc perfect. Recent, acesta a descoperit niște numere mai speciale: el numește un număr xx ca fiind antidivizorul unui număr natural nenul kk, dacă xx este cel mai mic număr natural nenul care nu-l divide pe kk. Fie F(k)=xF(k) = x, unde xx este antidivizorul lui kk.

Cerintă

Să se calculeze F(1)+F(2)++F(N)F(1) + F(2) + \dots + F(N) pentru TT valori ale lui NN.

Date de intrare

Pe prima linie a fișierului de intrare antidivizor.in se va afla un număr natural TT, care va reprezenta numărul de valori ale lui NN. Pe fiecare dintre următoarele TT linii se vor afla valorile naturale nenule ale lui NN, câte una pe linie.

Date de ieșire

Fișierul de ieșire antidivizor.out va conține TT linii. A ii-a linie va conține un singur număr natural, acela fiind suma cerută pentru valoarea lui NN aflată pe linia i+1i+1 din fișierul de intrare.

Restricții și precizări

  • 1T1051 \leq T \leq 10^{5}.
  • 1N10151 \leq N \leq 10^{15}.
# Scor Restricții
1 35 1N103,1T1001\leq N \leq 10^{3}, 1\leq T\leq 100
2 26 1N106,1T1051\leq N \leq 10^{6}, 1\leq T\leq 10^{5}
3 19 1N1015,1T1001\leq N\leq 10^{15},1\leq T \leq 100
4 20 Fără restricții suplimentare

Exemplul 1

antidivizor.in

2
1
2

antidivizor.out

2
5

Explicație

F(1)=2F(1) = 2 deoarece 11 divide pe 11, dar 22 nu divide pe 11.
F(2)=3F(2) = 3, deoarece 11 divide pe 22, 22 divide pe 22, dar 33 nu divide pe 22.

Exemplul 2

antidivizor.in

4
2
3
4
10

antidivizor.out

5
7   
10
26

Explicație

F(1)=2F(1) = 2
F(2)=3F(2) = 3
F(3)=2F(3) = 2
F(4)=3F(4) = 3
F(5)=2F(5) = 2
F(6)=4F(6) = 4
F(7)=2F(7) = 2
F(8)=3F(8) = 3
F(9)=2F(9) = 2
F(10)=3F(10) = 3

Log in or sign up to be able to send submissions!