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

Cine mă poate ajuta cu problemele acestea , dau câte 10 punctate pt fiecare problema

Anexe:

Mghetes: problemele de la 2 la 11?
burladaniel607: da
burladaniel607: a-si vrea algoritme cat mai simple ca sa para de clasa a 9
Mghetes: functii/metode nu ai invatat?
Mghetes: adica o logica pentru a verifica daca un nr este sau nu prim, un nr este prim daca nu are divizori improprii. logica asta am scris-o in functia numarPrim. Altfel nu ai cum verifica.
burladaniel607: am invatat
Mghetes: sunt ok asa cele 3 rezolvari?
burladaniel607: da

Răspunsuri la întrebare

Răspuns de Mghetes
1

Răspuns:

1.

n=15

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

// Online C++ compiler to run C++ program online

#include <iostream>

using namespace std;

bool numarPrim(int numar) // Functia returneaza doar true sau false - pentru ca nu avem nevoie de alte valori

{

   if(numar < 2) // Daca numarul este mai mic ca si 2 (1, 0, -1, -2, etc) - acesta nu este prim

       return false;

       for(int i = 2; i <= numar / 2; i++) // Parcurgem toate numerele de la 2 la numar / 2

       if(numar % i == 0) // Daca acesta se imparte exact la acel numar, inseamna ca nu este prim

           return false;

   return true;

}

int main() {

  int n, i, nr = 0;

   

 cout <<"n=";

 cin>> n;

 

 i = 2;

 while(nr < n)

 {

     if(numarPrim(i))

      {

          cout<<i<<" ";

          nr++;

      }

      i++;

 }

   return 0;

}

2.

n=15

m=9

2 3 5 7 11 13 17 23 31 41 43 53 61 71 101

// Online C++ compiler to run C++ program online

#include <iostream>

using namespace std;

bool numarPrim(int numar) // Functia returneaza doar true sau false - pentru ca nu avem nevoie de alte valori

{

   if(numar < 2) // Daca numarul este mai mic ca si 2 (1, 0, -1, -2, etc) - acesta nu este prim

       return false;

    for(int i = 2; i <= numar / 2; i++) // Parcurgem toate numerele de la 2 la numar / 2

       if(numar % i == 0) // Daca acesta se imparte exact la acel numar, inseamna ca nu este prim

           return false;

   return true;

}

int sumaCifrelor(int numar)

{

   int s = 0;

   while(numar > 0)

   {

       s = s+ numar % 10;

       numar /= 10;

   }

   

   return s;

}

int main() {

  int n, i, nr = 0, m;

   

 cout <<"n=";

 cin>> n;

 

 cout <<"m=";

 cin>> m;

 

 i = 2;

 while(nr < n)

 {

     if(numarPrim(i) && sumaCifrelor(i) < m)

      {

          cout<<i<<" ";

          nr++;

      }

      i++;

 }

   return 0;

}

3.

#include <iostream>

#include <cmath>

using namespace std;

bool numarPrim(int numar) // Functia returneaza doar true sau false - pentru ca nu avem nevoie de alte valori

{

   if(numar < 2) // Daca numarul este mai mic ca si 2 (1, 0, -1, -2, etc) - acesta nu este prim

       return false;

   for(int i = 2; i <= numar / 2; i++) // Parcurgem toate numerele de la 2 la numar / 2

       if(numar % i == 0) // Daca acesta se imparte exact la acel numar, inseamna ca nu este prim

           return false;

   return true;

}

int main() {

   int i, inv, copie;

   

   for(int i = 1000; i<= 9999; i++)

   {

       copie = i;

       inv = 0;

       if(numarPrim(i)) // daca i  este prim

       {

           //calculam inversul

           while(copie > 0)

           {

               inv = inv * 10 + copie %10;

               copie /= 10;

           }

           

          if(numarPrim(inv)) // daca inversul  este prim

          {

              cout<<i<<" ";

          }

         

       }

   }

   

   return 0;

}

Alte întrebări interesante