Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2023-08-08 09:32:56.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:jupanul.in, jupanul.outSursăJunior Challenge 2023
AutorCozma Tiberiu StefanAdăugată decadmium_Voicu Mihai Valeriu cadmium_
Timp execuţie pe test4 secLimită de memorie524288 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Salutare Jupâne

Pentru un sir de numere a, definim costul ca fiind suma gcdurilor† tututor prefixelor lui a. De exemplu, costul sirului [4,4,2,1] este gcd(4) + gcd(4,4) + gcd(4,4,2) + gcd(4,4,2,1) = 4+4+2+1 = 11.

Definim f(n,k) ca fiind suma costurilor tuturor partitiilor lui n in k termeni‡.

Dandu-se n si m, voi trebuie sa calculati f(n,1), f(n,2),...,f(n,m)

† Prin gcd(a1,a2,...,ai) s-a notat cel mai mare divizor comun al numerelor a1,a2,...,ai.
‡ Prin o partitie a lui n in k termeni, intelegem un sir de numere pozitive a1,a2,...ak cu proprietatea ca a1·a2·...·ak=n

Date de intrare

Pe prima si singura linie a fisierului jupanul.in contine numerele n si m separate printr-un spatiu.

Date de ieşire

Pe prima si singura linie a fisierului jupanul.out se vor afla f(n,1), f(n,2),...,f(n,m) separate prin exact un spatiu.

Restricţii

  • 1 ≤ n ≤ 1012
  • 1 ≤ m ≤ 2·105

Subtaskuri

#PunctajRestricţii
110n ≤ 5000
220n ≤ 100000
310m ≤ 5
410n este o putere a unui numar prim
550Fără restricţii suplimentare

Exemplu

jupanul.injupanul.out
6 2
6 16
12152 8
12152 27468 57294 111704 207030 369846 642894 1093344

Explicaţie

Numarul 6 se descompune in 2 termeni astfel:

  • [1,6], cost=gcd(%{color:black}$[1$%$]$) + gcd([1,6])=1+1=2
  • [6,1], cost=gcd(%{color:black}$[6$%$]$) + gcd([6,1])=6+1=7
  • [2,3], cost=gcd(%{color:black}$[2$%$]$) + gcd([2,3])=2+1=3
  • [3,2], cost=gcd(%{color:black}$[3$%$]$) + gcd([3,2])=3+1=4

Deci f(6,2)=2+7+3+4=16

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?