Informatică, întrebare adresată de Diuva, 8 ani în urmă

Din fisierul date.in de pe prima linie se citeste un numar natural n, iar de pe urmatoarele
linii, n numere naturale. Sa se scrie in fisierul date.out, numerele care sunt prime, pe acelasi rand,
despartite prin cate un spatiu.
Exemplu:
date.in date.out
5 13 2 17
1
13
2
100
17
55

Răspunsuri la întrebare

Răspuns de adrianalitcanu2018
0

Explicație:

#include <iostream>

#include <fstream>

#include <cmath>

using namespace std;

ifstream fin("date.in");

ofstream fout("date.out");

bool prime(int a)//aplicam algoritmul de determinare daca un numar este sau nu prim

{

   for(int j=2;j<=sqrt(a);j++)//parcurgem toate numerele de la 2 pana la radical din a (un numar daca are divizori, are macar un divizor pana la radical din a)

       if(a%j==0)//testam daca a se imparte sau nu la un j

           return 0;

   return 1;

}

int main()

{

   int n,sir[100];

   fin>>n;

   for(int i=0;i<n;i++)

       fin>>sir[i];

   for(int i=0;i<n;i++)//parcurgem elementele sirului

       if(prime(sir[i])==1)//apelam functia pentru fiecare element si testam daca valoarea este sau nu 1 si in caz afirmativ executam instructiunea de mai jos

           fout<<sir[i]<<" ";

   fin.close();

   fout.close();

   return 0;

}

Alte întrebări interesante