Biletul 10 Atestat Informatica Programare

Biletul nr. 10 pentru atestat informatica la programare 2015

Mai jos este prezentat codul sursa al aplicatiei in C++, cod care determina cel mai apropiat numar prim fata de un numar citit de la tastatura, rezultatul va fi scris intr-un fisier.

Enuntul problemei:

10. Fişierul date.in conţine pe unica sa linie un număr natural n (n ≤ 1000000000). Să se determine cel mai apropiat număr prim faţă de n. Programul va conţine cel puţin un subprogram, iar rezultatul obţinut va fi scris în fişierul date.out. Dacă sunt două numere prime egal departate de n, se poate afişa oricare dintre ele.

bilet 10 atestate informatica programare

Rezolvarea problemei

#include<iostream.h>
#include<math.h>
#include<fstream.h>
int prim(int x,int d=2)
{
if(d>sqrt(x))
return 1;
else
if(x%d==0)
return 0;
else
return prim(x,d+1);
}
int nr(int n)
{
int a=n, b=n;
while(!prim(a))
a--;
while(!prim(b))
b++;
if(n-a<=b-n)
return a;
else
return b;
}
fstream fin("date.in",ios::in), fout("date1.out",ios::out);
int main()
{
int n,x;
fin>>n; x=nr(n);
fout<<x;
fin.close();
fout.close();
system("pause");
}

Scris de AtestateLaInformatica.ro

0