Se dă un număr natural n. Să se afle numărul divizorilor naturali ai lui n la puterea n.
Programul citește de la tastatură numărul n.
Programul va afișa pe ecran numărul divizorilor lui n la puterea n, modulo 59999.
Intrare
4
Ieșire
9
Explicație
Numărul 44=256 are 9 divizori: 1,2,4,8,16,32,64,128,256.
ce am facut eu:
#include
#include
using namespace std;
int putere(int x)
{
int n,nr;
n=x;
nr=1;
while(n!=0)
{
n--;
nr=nr*x;
}
return 1;
}
int main()
{
int x;
cin>>x;
x=putere(x);
cout<
}
ce am gresit ?
Răspunsuri la întrebare
Răspuns de
2
Functia putere este buna, dar trebuie sa returneze nr-ul (unde ai calculat n la puterea n) si nu 1. Scriind return 1 o sa iti afiseze 1 pentru orice valoare ai introduce de la tastatura. Pe langa asta mai trebuie sa faci si o functie pentru numarul de divizori, care va fi apelata pentru n la puterea n (rezultatul returnat ede functia "putere" ).
Uite aici programul complet:
#include<iostream>
using namespace std;
int putere(int x)
{
int n,nr;
n=x;
nr=1;
while(n!=0)
{
n--;
nr=nr*x;
}
return nr;
}
int nr_div(int x)
{
int d,nr=0;
for(d=1;d*d<x;d++)
if(x%d==0)
nr+=2;
if(d*d==x)
nr++;
return nr;
}
int main()
{
int x;
cin>>x;
x=putere(x);
cout<<nr_div(x);
return 0;
}
Uite aici programul complet:
#include<iostream>
using namespace std;
int putere(int x)
{
int n,nr;
n=x;
nr=1;
while(n!=0)
{
n--;
nr=nr*x;
}
return nr;
}
int nr_div(int x)
{
int d,nr=0;
for(d=1;d*d<x;d++)
if(x%d==0)
nr+=2;
if(d*d==x)
nr++;
return nr;
}
int main()
{
int x;
cin>>x;
x=putere(x);
cout<<nr_div(x);
return 0;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Franceza,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Chimie,
9 ani în urmă
Franceza,
9 ani în urmă
Matematică,
9 ani în urmă