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

1. Fişierul text r13.in conţine pe prima linie un număr natural n (0 n numere naturale cu cel mult 9 cifre fiecare. Scrieţi un program care citeşte toate numerele din
fişier şi afişează pe ecran, separate prin câte un spaţiu, numerele formate doar din cifre
distincte şi care au exact trei cifre.
Exemplu: dacă fişierul r13.in are următorul conţinut
7
249 511 4329 2 4313 243 3562
atunci pe ecran se vor afişa numerele 249 243 (nu neapărat în această ordine).
2. Fişierul text r21.in conţine cel mult 1000 de numere naturale din intervalul închis [0,999],
aflate pe mai multe linii, numerele de pe aceeaşi linie fiind separate prin câte un spaţiu. Scrieţi
un program care determină şi afişează pe ecran cel mai mic număr prim a cu proprietatea
max≤a, unde max este cea mai mare valoare din fişier.
Exemplu: dacă fişierul conţine numerele: 5 8 99 5 1 1 2 2 se va afişa 101.

Răspunsuri la întrebare

Răspuns de boiustef
0

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("r13.in");

int n, num, i;

bool valabil(int num)

{

   return (num>99 && num<1000);

}

bool distinctecif(int num)

{

   int u=num%10, s=num/100, z=(num/10)%10;

   return (s!=z && s!=u && z!=u);

}

int main()

{

   f >> n;

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

   {

       f >> num;

       if (valabil(num))

           {

               if (distinctecif(num))

                {cout << num << " ";}

           }

   }

   return 0;

}

Explicație:

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("r21.in");

int num, maxim=-1, a;

bool prim(int a)

{

   if (a<2) return false;

   if (a==2) return true;

   else

   {

       if (a%2==0) return false;

       else

       {

           for (int j=3; j*j<=a; ++j)

               if (a%j==0) return false;

           return true;

       }

   }

}

int main()

{

   while (f >> num)

   {

       if (num>maxim) maxim=num;

   }

   a=maxim;

   while (!prim(a)) ++a;

   cout << a;

}

Alte întrebări interesante