fbpx

Problema #988 – Prime – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă un tablou cu n elemente, numere naturale. Să se afișeze numerele prime din șir, în ordinea în care apar în șir.

Se va defini și apela subprogramul prim, care verifică dacă un număr natural transmis ca parametru este prim.

Date de intrare

Fișierul de intrare prime.in conține pe prima linie numărul n, iar iar pe a doua linie cele n elemente ale tabloului.

Date de ieșire

Fișierul de intrare prime.out va conține pe prima linie elementele cerute, separate prin exact un spațiu.

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • elementele tabloului vor fi mai mici decât 1 000 000 000

Exemplu

prime.in

5
12 2 123 41 77

prime.out

2 41
#include <bits/stdc++.h>
using namespace std;

ifstream fin("prime.in");
ofstream fout("prime.out");

int prim(int n)
{
    int cnt=0;
    for (int i = 1 ; i * i <= n ; ++i)
    {
        if (n%i==0)
        cnt+=2;
        if (i*i==n)
        cnt--;
    }
    if (cnt==2)
    return 1;
    else
    return 0;
}

int main()
{
    int n;
    fin >> n;
    int a[1001];
    for (int i = 0 ; i < n ; ++i)
    {
        fin >> a[i];
        if (prim(a[i]))
            fout << a[i] << ' ';
    }

    fin.close();
    fout.close();

    return 0;
}
Comentarii

S-ar putea sa iti placa