Informatică, întrebare adresată de ModFriendly, 8 ani în urmă

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.

Anexe:

Răspunsuri la întrebare

Răspuns de PersoanaPersonala
0

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

Anexe:

ModFriendly: Multumesc! Din pacate nu ma ajuta. Aveam nevoie de el in C++ asa cum l-am scris... Nu inteleg limbajul de programare respectiv.
Răspuns de dragos134
1

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;

}


ModFriendly: Multumesc!
Alte întrebări interesante