👤

Buna!
Secventa asta de cod cuantifica numarul de divizori ai unui element de sir. Nu inteleg deloc cum functioneaza, imi explica cineva?

#include

using namespace std;
ifstream fin("sortare_divizori.in");
ofstream fout("sortare_divizori.out");
int v[1000],div_v[1000],n;
int main()
{
int i,j;
fin>>n;
for(i=0;i {
fin>>v[i];
int x=v[i];
int exp=0;
while(x%2==0)
{
exp++;
x/=2;
}
int nr_div=exp+1;
int d=3;
while(d*d<=x)
{
exp=0;
while(x%d==0)
{
exp++;
x/=d;
}
nr_div*=(exp+1);
d+=2;
}
if(x!=1)
nr_div*=2;
div_v[i]=nr_div;
}


Răspuns :

Este o formula care spune ca fiecare exponent al fiecarui numar prim din descompunerea numarului +1 este da numarul de divizori

18= 2 ^ 1 * 3^2

deci, exponentii sunt 1 si 2

nrdiv=(1+1)*(2+1)=6

Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!


ID Learners: Alte intrebari