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
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
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;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Geografie,
8 ani în urmă
Chimie,
8 ani în urmă
Matematică,
8 ani în urmă
Engleza,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă