Se consideră două numere naturale nenule N şi K. Numim K-şir un şir de numere naturale cu K termeni.
Cerința
Determinaţi numărul format din ultimele 4 cifre ale numărului de K-şiruri distincte cu proprietatea că fiecare dintre ele are cel mai mic multiplu comun al termenilor egal cu N.
Date de intrare
Fișierul de intrare multiplu1.in conține pe prima linie cele două numere N şi K separate printr-un singur spaţiu.
Date de ieșire
Fișierul de ieșire multiplu1.out va conține pe prima linie un singur număr natural reprezentând rezultatul cerut.
Restricții și precizări
0 < N ≤ 1 000 000 0000 < K ≤ 1 000 000 000
Exemplu
multiplu1.in
5 2
multiplu1.out
3
Explicație
Cele trei 2-şiruri cu cel mai mic multiplu comun al termenilor egal cu 5 sunt : (1,5), (5,1) şi (5,5).
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Multiplu1:
#include<cstdio>
const int N=30;
const int M=10000;
int n,k,nr,d[N];
void desc(int n)
{
for(int i=2;i*i<=n;++i)
if(n%i==0)
{
d[++nr]=0;
while(n%i==0)
{
n/=i;
++d[nr];
}
}
if(n!=1)
d[++nr]=1;
}
int pow(int a,int n)
{
int p=1;
while(n)
{
if(n&1)
p=p*a%M;
a=(a*a)%M;
n>>=1;
}
return p;
}
int calcul()
{
int p=1,t;
desc(n);
for(int i=1;i<=nr;++i)
{
t=pow(1+d[i],k)-pow(d[i],k);
if(t<0)
t+=M;
p=p*t%M;
}
return p;
}
int main()
{
freopen("multiplu1.in","r",stdin);
freopen("multiplu1.out","w",stdout);
scanf("%d%d",&n,&k);
printf("%d
",calcul());
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa
.
Rezolvarea problemei #746 Multiplu1
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #746 Multiplu1 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!