Informatică, întrebare adresată de 24cosmin24, 8 ani în urmă

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 radugiulia
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;
}
   
Alte întrebări interesante