De la tastatura se citesc 2 numere intregi n,m care indica dimensiunea tabloului bidimensional cu elemente intregi citite de la tastatura.
Scrieti un program care va crea fisierul prim.txt in care va inscrie toate numerele prime ce contin cifra 3 din tabloul dat.
Utilizam subprograme(functii)
Răspunsuri la întrebare
► Cod C++ :
#include <iostream>
#include <fstream>
using namespace std;
//Functie care verifica daca numarul contine cifra 3
bool contine_3(int nr) {
while (nr) {
if (nr % 10 == 3) return true;
nr /= 10;
}
return false;
}
//Functie care verifica daca numarul e prim
bool este_prim(int nr) {
if (nr < 2) return false;
if (nr == 2) return true;
for (int d = 3; d * d <= nr; d += 2)
if (nr % d == 0) return false;
return true;
}
int main() {
int n, m;
int aux;
//Citeste dimensiune
cin >> n >> m;
//Deschide fisier
ofstream fout("prim.txt");
//Citeste matrice
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++) {
cin >> aux;
//Daca numarul citit respecta confitiile adauga in fisier
if (este_prim(aux) && contine_3(aux)) fout << aux << " ";
}
//Inchide fisier
fout.close();
}
► Nota :
Deoarece nu facem mai multe operatii cu matricea nu are sens sa o memoram complet, e suficient sa stim doar elementul curent pe care il prelucram imediat dupa citire