👤

Buna! Am pus o poza cu algoritmul in C++ care corespunde cerintei de mai jos.
Problema mea e ca pentru numere mari timpul de executare este unul maaaaaaaare.
Cum pot scrie algoritmul ca sa se execute mai repede? Multumesc!

Cerinţa
Se citește un număr natural n. Să se determine câți divizori pari are acest număr.

Date de intrare
Programul citește de la tastatură numărul n.

Date de ieşire
Programul afișează pe ecran numărul C, reprezentând numărul divizorilor pari ai lui n.

Restricţii şi precizări
0 < n < 1.000.000.000

Exemplu
Intrare

12
Ieșire

4
Explicație
Divizorii pari lui 12 sunt 2, 4, 6 și 12.



Buna Am Pus O Poza Cu Algoritmul In C Care Corespunde Cerintei De Mai Jos Problema Mea E Ca Pentru Numere Mari Timpul De Executare Este Unul Maaaaaaaare Cum Pot class=

Răspuns :

Răspuns:

Cel mai bun algoritm pe pbinfo al lui Candale la sectiunea Resurse clasa 9

Explicație:

Acolo ai toate explicatiile necesare, ti-am atasat clar algoritmul

Vezi imaginea PERSOANAPERSONALA

Răspuns:

#include <iostream>

using namespace std;

int main()

{

long n, s = 0, i;

cin >> n;

for (i = 1; i*i <= n; i++)

{

 if (n%i == 0 && i%2==0)

 

  s++;

 if (n%i == 0 && i != n / i && (n / i) % 2 == 0)

  s++;

 

}    

cout << s;

   return 0;

}