Rezolvare completă PbInfo #667 NrPrime1

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 coloane cu indici impari 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 ≤ 600
  • 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 2 10
3 9 1
7 10 1
10 19 3

Ieșire

4

Explicație

Cele 4 valori prime determinate sunt cele evidențiate mai jos:


5 2 10
3 9 1
7 10 1
10 19 3

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

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 NrPrime1:

#include <iostream>
using namespace std;

int a[601][601], n, m;
int v[1000005];

int main(){
    //ciurul lui eratostene
    v[1] = v[0] = 1;
    for(int i = 2 ; i * i <= 1000000 ; i++)
        for(int j = 2 ; i * j <= 1000000 ; j ++)
            v[i*j] = 1;
    
    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 j = 1 ; j <= m ; j ++) 
        for (int i = 1 ;i <= n ; i ++) 
            if(j % 2 == 1)
                if(v[a[i][j]] == 0)
                    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 #667 NrPrime1

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #667 NrPrime1 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!