pascal

Time limit: 0.03s Memory limit: 16MB Input: pascal.in Output: pascal.out

Triunghiul lui Pascal este un aranjament geometric de numere ce poartă numele celebrului matematician francez Blaise Pascal (19 iunie 1623 – 19 august 1662), deoarece el a fost prima persoană care a descoperit importanţa tuturor modelelor din componenţa acestuia.

Triunghiul începe cu numărul 11. Acest rând este considerat rândul 00 al triunghiului. Restul numerelor din acest triunghi se formează ca suma celor două numere de deasupra (considerând că toate numerele din afara triunghiului sunt întotdeauna zero). Prin urmare, rândul 11 va fi format din 1=0+11 = 0 + 1, 1=1+01 = 1 + 0, iar rândul 22 va fi format din 1=0+11 = 0 + 1, 2=1+12 = 1 + 1, 1=1+01 = 1 + 0.

Fie nn și pp două numere naturale nenule cu proprietățile:

  • pp este număr prim;
  • n+1n+1 este o putere naturală a lui pp.

Notăm cu M(p)M(p) numărul de multipli de pp din primele n+1n+1 rânduri ale triunghiului lui Pascal.

Cerință

Să se scrie un program care citeşte numerele naturale nn şi pp și determină numărul M(p)M(p).

Date de intrare

Fișierul de intrare pascal.in conține pe prima linie numerele naturale nn și pp separate printr-un spațiu.

Date de ieșire

Fișierul de ieșire pascal.out va conține pe prima linie numărul M(p)M(p) cu semnificația de mai sus.

Restricții și precizări

  • 2n1092 \leq n \leq 10^9
  • 2p1032 \leq p \leq 10^3
  • 30%30\% din teste au n104n \leq 10^4.
  • 50%50\% din teste au n106n \leq 10^6.

Exemplul 1

pascal.in

7 2

pascal.out

9

Explicație

În primele 88 rânduri ale triunghiului se găsesc 99 multipli de 22: 22, 44, 66, 44, 1010, 1010, 66, 2020, 66.

Exemplul 2

pascal.in

2196 13 

pascal.out

1660932

Explicație

În primele 2 1972 \ 197 rânduri ale triunghiului se găsesc 1 660 9321 \ 660 \ 932 multipli de 1313.

Exemplul 3

pascal.in

282475248 7

pascal.out

39599936523348201

Explicație

În primele 282 475 249282 \ 475 \ 249 rânduri ale triunghiului se găsesc 39 599 936 523 348 20139 \ 599 \ 936 \ 523 \ 348 \ 201 multipli de 77.

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