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 1. Acest rând este considerat rândul 0 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 1 va fi format din 1 = 0 + 1, 1 = 1 + 0, iar rândul 2 va fi format din 1 = 0 + 1, 2 = 1 + 1, 1 = 1 + 0.
Fie n și p două numere naturale nenule cu proprietățile:
peste număr prim;n+1este o putere naturală a luip;
Notăm cu M(p) numărul de multipli de p din primele n+1 rânduri ale triunghiului lui Pascal.
Cerința
Să se scrie un program care citeşte numerele naturale n şi p și determină numărul M(p).
Date de intrare
Fișierul de intrare pascal.in conține pe prima linie numerele naturale n și p 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) cu semnificația de mai sus.
Restricții și precizări
2 ≤ n ≤ 1092 ≤ p ≤ 10330%din teste aun ≤ 10450%din teste aun ≤ 106
Exemplu:
pascal.in
7 2
pascal.out
9
Explicație
În primele 8 rânduri ale triunghiului se găsesc 9 multipli de 2: 2,4,6,4,10,10,6,20,6.
Exemplu:
pascal.in
2196 13
pascal.out
1660932
Explicație
În primele 2197 rânduri ale triunghiului se găsesc 1660932 multipli de 13.
Exemplu:
pascal.in
282475248 7
pascal.out
39599936523348201
Explicație
În primele 282475249 rânduri ale triunghiului se găsesc 39599936523348201 multipli de 7.