Cine mă poate ajuta cu problemele acestea , dau câte 10 punctate pt fiecare problema
Răspunsuri la întrebare
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;
}