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

1.Se citesc pe rând n numere întregi şi apoi o valoare întreagă a. Să se determine numărul de apariţii ale valorii a printre numerele citite.
2.Se dă de la tastatură un număr natural n mai mic sau egal cu 5000. Se cere să se afişeze numerele naturale mai mici sau egale cu n care au exact trei divizori proprii.
ÎN C ++! ​

Răspunsuri la întrebare

Răspuns de chetreanandrei
1

Răspuns:

Problema 1

#include <iostream>

using namespace std;

int main(){

   int x[1000];

   int n;

   int i;

   int a;

   int k = 0;

   cout << "n=";

       cin >> n;

   for (i = 0;i < n; i++){

       cout << "Numarul " << i+1 << " : ";

           cin >> x[i];

   }

   cout << "a=";

       cin >> a;

   for (i = 0;i < n; i++){

       if (x[i] == a){

           k++;

       }

   }

   if (k > 1) {

       cout << "Numarul " << a << " se intalneste in sirul introdus de " << k << " ori\n";

   } else if (k == 1) {

       cout << "Numarul " << a << " se intalneste in sirul introdus o data\n";

   } else {

       cout << "Numarul " << a << " nu se intalneste in sirul introdus \n";

   }

   return 0;

}

Problema 2

#include <iostream>

using namespace std;

int main(){

   int n;

   cout << "n=";

       cin >> n;

   cout << "Numerele pana la " << n << " cu 3 divizor proprii:\n";

   for (int i = 1;i <= n; i++){

       int k = 0;

       for (int d = 2;d < i; d++){

           if (i % d == 0){

               k++;

           }

       }

       if (k == 3){

           cout << i << ' ';

       }

   }

   cout << endl;

   return 0;

}

Explicație:


Porecla0987: Nu-i rau, dar uite o varianta mai rapida la problema 2: numerele cu 3 divizori proprii (primi) sunt patrate perfecte, deci poti afisa patratele numerelor naturale <= sqrt(n), in loc sa calculezi divizorii fiecarui numar.
Alte întrebări interesante