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 ≤ 10
2 ≤ T < 10^15
Două soluții(x1,x2,...,xN)
și(y1,y2,...,yN)
se consideră a fi diferite dacă (x1≠y1
saux2≠y2
sau …. 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!