Fişierul divizor.in conţine pe prima linie un număr natural nenul n, iar pe a doua line,
separate prin spaţiu, n numere naturale nenule. Să se afişeze în fişierul divizor.out, pe prima linie
separate prin spaţiu, acele numere de pe a doua linie din fişierul de intrare care sunt prime cu n, iar pe
a doua line se va afişa câte astfel de numere există.

Exemplu:
divizor.in divizor.out
8 33 9 41 45
12 33 9 41 10 18 45 22 4

Răspuns :

Explicație:

#include <iostream>

#include <fstream>

using namespace std;

ifstream fin("divizor.in");

ofstream fout("divizor.out");

int prime_intre_ele(int a, int b)//algoritmul lui Euclid in varianta recursiva pentru a determina cmmdc

{

   if(!b)

       return a;

   return prime_intre_ele(b,a%b);

}

int main()

{

   int n,sir[100];

   fin>>n;

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

       fin>>sir[i];

   int k=0;//initializam cu 0 numarul de numere ce indeplinesc conditia

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

       if(prime_intre_ele(sir[i],n)==1)//apelam pentru fiecare numar din sir functia de mai sus si daca rezultatul este 1, atunci

       {

           fout<<sir[i]<<" ";//scriem elementul

           k++;//k creste cu o unitate

       }

   fout<<endl;

   fout<<k;//scriem k

   fin.close();

   fout.close();

   return 0;

}