Rezolvare completă PbInfo #666 NrPrime

Cerința

Se dă o matrice cu n linii și m coloane și elemente numere naturale. Să se determine câte dintre elementele situate pe linii cu indici pari sunt prime.

Date de intrare

Programul citește de la tastatură numerele n m, iar apoi n șiruri cu câte m numere naturale, reprezentând elementele matricei.

Date de ieșire

Programul va afișa pe ecran numărul C, reprezentând valoarea căutată.

Restricții și precizări

  • 1 ≤ n , m ≤ 100
  • elementele matricei sunt numere naturale mai mici decât 1.000.000
  • liniile matricei sunt numerotate de 1 la n, iar coloanele de la 1 la m

Exemplu

Intrare

4 3
5 12 10
3 9 1
7 10 1
10 9 3

Ieșire

2

Explicație

Cele 2 valori prime determinate sunt cele îngroșate mai jos:


5 12 10
3 9 1
7 10 1
10 9 3

Observăm că matricea conține și alte elemente prime, dar ele nu sunt situate pe linii cu indici pari.

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema NrPrime:

#include <iostream>
using namespace std;

int a[101][101], n, m;

int main(){
    cin  >> n >> m;
    for (int i = 1 ;i <= n ; ++i)
        for(int j = 1 ; j <= m ; ++j)
            cin >> a[i][j];
    
    int cnt = 0;
    for (int i = 2 ;i <= n ; i += 2) // parcurgem doar liniile cu indici pari
        for(int j = 1 ; j <= m ; ++j)
        {
            bool prim = true;
            int x = a[i][j];
            if(x < 2)
                prim = false;
            if(x > 2 && x % 2 == 0)
                prim = false;
            for(int d = 3 ; prim && d * d <= x ; d += 2)
                if(x % d == 0)
                    prim = false;
            if(prim)
                cnt ++;
        }
    cout << cnt;
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #666 NrPrime

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #666 NrPrime de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!