Cerința
Fie N și T două numere naturale.
Să se determine numărul soluțiilor diferite S, ale ecuației \( x_1 \cdot x_2 \cdot \cdots \cdot x_N = T \), în mulțimea numerelor naturale.
Date de intrare
Fișierul de intrare ecuatie3.in conține pe primul rând numerele N și T cu semnificația de mai sus, despărțite printr-un spațiu.
Date de ieșire
Fișierul de ieșire ecuatie3.out va conține pe prima linie numărul S.
Restricții și precizări
1 ≤ N ≤ 102 ≤ T < 10^15
Două soluții(x1,x2,...,xN)și(y1,y2,...,yN)se consideră a fi diferite dacă (x1≠y1saux2≠y2sau …. sauxN≠yN)
Exemplul 1
ecuatie3.in
2 28
ecuatie3.out
6
Explicație
N = 2 și T = 28
Sunt 6 perechi (x1,x2) de numere naturale cu proprietatea că x1 * x2 = 28:
(1,28), (2,14), (4,7), (7,4), (14,1), (28,1)
Exemplul 2
ecuatie3.in
3 10
ecuatie3.out
9
Explicație
N = 3 și T = 10
Sunt 9 triplete (x1,x2,x3) de numere naturale cu proprietatea că x1 * x2 * x3 = 10:
(1,1,10), (1,2,5), (1,5,2), (1,10,1)
(2,1,5), (2,5,1)
(5,1,2), (5,2,1)
(10,1,1)
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 ecuatie3:
// Solutie de 100 puncte - sursa cu descompunere in factori primi si produs de combinari
// O(sqrt(n))
#include <fstream>
#define fmax 50
using namespace std;
int main()
{
unsigned long long n,w,i,j,k=0,fact,p=1,t,e[fmax];
ifstream f("ecuatie3.in");
ofstream g("ecuatie3.out");
f>>n>>t;
w=t;
// extrag factorii de 2
fact=0;
while (w%2==0)
{w/=2;fact++;}
if (fact) e[++k]=fact;
// descompun t in factori primi
i=3;
while (i*i<=w)
{
if (w%i==0)
{
fact=0;
while (w%i==0) {w/=i;fact++;}
if (fact) e[++k]=fact;
}
i+=2;
}
if (w>i-1) e[++k]=1;
//calculez cate solutii are ecuatia
for(i=1;i<=k;i++)
for(j=1;j<=n-1;j++)
p=p*(e[i]+j)/j;
g<<p<<"
";
f.close();
g.close();
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 #1713 ecuatie3
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1713 ecuatie3 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!