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

Dau funda daca functioneaza

1)Se citeste o matrice oarecare cu m linii si n coloane din fisierul “apl01.txt” Sa se afiseze
Mesajul “DA” daca matricea contine cel putin 7 nr prime si respective “NU” daca nu contine.
2)Se citeste o matrice oarecare cu m linii si n coloane din fisierul “apl02.txt” Sa se afiseze
elementele cu toate cifrele egale

3)Se citeste o matrice oarecare cu m linii si n coloane din fisierul “apl03.txt” Sa se afiseze
elemenele in care prima cifra este egala cu ultima cifra

4) Se citeste o matrice oarecare cu m linii si n coloane din fisierul “apl04.txt” Sa se afiseze
Numerele prime care au suma cifrelor nr impar

5) Se citeste o matrice oarecare cu m linii si n coloane din fisierul “apl05.txt” Sa se afiseze
elementele care au suma divizorilor nr par(*pe asta mi-ai rezolvat-o ieri da profa a zis ca mai trebuie ceva )

6) Se citeste o matrice oarecare cu m linii si n coloane din fisierul “apl06.txt” Numerele prime sa se afiseze elementele din matrice care sunt numere rotunde si sunt pe linii impare


mariasm: numere rotunde insemnand numere care in reprezentarea binara au un numar egal de 0 si 1?

Răspunsuri la întrebare

Răspuns de mariasm
2

Răspuns:

#include <iostream>

#include <math.h>

#include <fstream>

#include <string.h>

using namespace std;

bool numar_rotund(int n)

{

   int d=1, cifre0=0, cifre1=0;

   while(n!=0)

       {

           if(n%2==0)

               cifre0++;

           else

               cifre1++;

           n=n/2;

       }

   if (cifre0==cifre1)

       return 1;

   return 0;

}

bool suma_divizori (int n)

{

   int s,d;

   for  (d=1; d<=n/2; d++)

        if (n%d==0)

           s+=d;

   s+=n;

   if (s%2==0)

       return 1;

   return 0;

}

bool suma_cifre (int n)

{

   int s=0;

   while (n)

   {

       s+=n%10;

       n/=10;

   }

   if (s%2==1)

       return 1;

   return 0;

}

bool prima_ultima(int n)

{

  int c;

  c=n%10;

  while (n>9)

       n/=10;

  if (n!=c)

   return 0;

  return 1;

}

bool prim (int n)

{

   int d=2;

   bool ok=1;

   if (n%d==0 && n!=2)

       return 0;

   d++;

   while ((d<=sqrt(n))&&(ok))

       if (n%d==0)

       {

           return 0;

           ok=0;

       } else

       d+=2;

   return 1;

}

bool cifre_egale(int n)

{

   int c;

   c=n%10; n/=10;

   while (n)

   {

       if (c!=n%10)

           return 0;

       n/=10;

   }

   return 1;

}

int main()

{

{

       ifstream f("apl01.txt");

       int m, n, i, j, nr, nr_prime=0;

       f>>m>>n;

       for (i=0; i<m; i++)

           for (j=0; j<n; j++)

               {

                   f>>nr;

                   if (prim(nr))

                       nr_prime++;

               }

       if (nr_prime>=7)

           cout<<"da"; else

           cout<<"nu";

       cout<<"\n";

   }

{

   ifstream f("apl02.txt");

   int m, n, i, j, nr;

   f>>m>>n;

   cout<<"cifre egale:";

   for (i=0; i<m; i++)

       for (j=0; j<n; j++)

           {

               f>>nr;

               if (cifre_egale(nr))

                   cout<<nr<<" ";

               }

   cout<<"\n";

}

{

   ifstream f("apl03.txt");

   int m, n, i, j, nr;

   f>>m>>n;

   cout<<"prima egala cu ultima:";

   for (i=0; i<m; i++)

       for (j=0; j<n; j++)

           {

               f>>nr;

               if (prima_ultima(nr))

                   cout<<nr<<" ";

               }

   cout<<"\n";

}

{

   ifstream f("apl04.txt");

   int m, n, i, j, nr;

   f>>m>>n;

   cout<<"prim si suma cifre:";

   for (i=0; i<m; i++)

       for (j=0; j<n; j++)

           {

               f>>nr;

               if (prim(nr)&&suma_cifre(nr))

                   cout<<nr<<" ";

               }

   cout<<"\n";

}

{

   ifstream f("apl05.txt");

   int m, n, i, j, nr;

   f>>m>>n;

   cout<<"suma divizori:";

   for (i=0; i<m; i++)

       for (j=0; j<n; j++)

           {

               f>>nr;

               if (suma_divizori(nr))

                   cout<<nr<<" ";

               }

   cout<<"\n";

}

{

   ifstream f("apl06.txt");

   int m, n, i, j, nr;

   f>>m>>n;

   cout<<"numere rotunde:";

   for (i=0; i<m; i++)

       for (j=0; j<n; j++)

           {

               f>>nr;

               if (numar_rotund(nr)&&(i%2==0))

                   cout<<nr<<" ";

               }

   cout<<"\n";

}

return 0;

}

Explicație:

Răspuns de boiustef
0

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

ifstream f01("apl01.txt");

int m,n,i,j,a[100][100];

bool prim(int x)

{

   if (x<2) return false;

   if (x==2) return true;

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

   for (int d=3; d*d<=x; d+=2)

       if (x%d==0) return false;

   return true;

}

int main()

{

   f01 >> m >> n;

   int prime=0;

   for (i=0; i<m; ++i)

   {

       for (j=0; j<n; ++j)

       {

           f01 >> a[i][j];

           if (prim(a[i][j])) {++prime;}

       }

   }

   if (prime>=7) cout << "DA";

   else cout << "NU";

   f01.close();

}

#include <iostream>

#include <fstream>

using namespace std;

ifstream f02("apl02.txt");

int m,n,i,j,a[100][100];

bool egaleCifre(int x)

{

   if (x<10) return true;

   else

   {

      int c1,c2;

      c1=x%10; x=x/10;

      while (x>0)

      {

          c2=x%10;

          if (c1!=c2) return false;

          x=x/10;

      }

      return true;

   }

}

int main()

{

   f02 >> m >> n;

   int exista=0;

   cout << "elemente cu toate cifrele egale: \n";

   for (i=0; i<m; ++i)

   {

       for (j=0; j<n; ++j)

       {

           f02 >> a[i][j];

           if (egaleCifre(a[i][j])) { exista=1; cout << a[i][j] << " ";}

       }

   }

   if (exista==0) cout << "Nu exista...";

   f02.close();

}

#include <iostream>

#include <fstream>

using namespace std;

ifstream f03("apl03.txt");

int m,n,i,j,a[100][100];

bool PegalaU(int x)

{

   if (x<10) return true;

   else

   {

      int p,u;

      u=x%10; x=x/10;

      while (x>9)

      {

          x=x/10;

      }

      p=x;

      return p==u;

   }

}

int main()

{

   f03 >> m >> n;

   int exista=0;

   cout << "elemente la care prima cifra egala cu ultima cifra: \n";

   for (i=0; i<m; ++i)

   {

       for (j=0; j<n; ++j)

       {

           f03 >> a[i][j];

           if (PegalaU(a[i][j])) { exista=1; cout << a[i][j] << " ";}

       }

   }

   if (exista==0) cout << "Nu exista...";

   f03.close();

}

#include <iostream>

#include <fstream>

using namespace std;

ifstream f04("apl04.txt");

int m,n,i,j,a[100][100];

bool prim(int x)

{

   if (x<2) return false;

   if (x==2) return true;

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

   for (int d=3; d*d<=x; d+=2)

       if (x%d==0) return false;

   return true;

}

int sumaCifre(int m)

{

   int s=0;

   while (m>0)

   {

       s=s+m%10;

       m=m/10;

   }

   return s;

}

int main()

{

   f04 >> m >> n;

   int exista=0;

   cout << "elemente prime si cu suma cifrelor impara: \n";

   for (i=0; i<m; ++i)

   {

       for (j=0; j<n; ++j)

       {

           f04 >> a[i][j];

           if (prim(a[i][j]) && sumaCifre(a[i][j])%2==1) { exista=1; cout << a[i][j] << " ";}

       }

   }

   if (exista==0) cout << "Nu exista...";

   f04.close();

}

Explicație:

#include <iostream>

#include <fstream>

using namespace std;

ifstream f05("apl05.txt");

int m,n,i,j,a[100][100];

int sumaDiv(int x)

{

   int s=0, d;

   for (d=1; d*d<x; ++d)

   if (x%d==0)

   {

       s=s+d+x/d;

   }

   if (d*d==x) s+=d;

   return s;

}

int main()

{

   f05 >> m >> n;

   int exista=0;

   cout << "elemente cu suma divizorilor nr. par: \n";

   for (i=0; i<m; ++i)

   {

       for (j=0; j<n; ++j)

       {

           f05 >> a[i][j];

           if (sumaDiv(a[i][j])%2==0) { exista=1; cout << a[i][j] << " ";}

       }

   }

   if (exista==0) cout << "Nu exista...";

   f05.close();

}

#include <iostream>

#include <fstream>

using namespace std;

ifstream f06("apl06.txt");

int m,n,i,j,a[100][100];

bool rotund(int x)

{

   if (x==0) return false;

   else

   {

       int unu=0, zero=0;

       while (x>0)

       {

           if (x%2==0) ++zero;

           else ++unu;

           x/=2;

       }

       return unu==zero;

   }

}

int main()

{

   f06 >> m >> n;

   int exista=0;

   cout << "elemente rotunde pe linii impare: \n";

   for (i=0; i<m; ++i)

   {

       for (j=0; j<n; ++j)

       {

           f06 >> a[i][j];

           if (rotund(a[i][j]) && i%2==1) { exista=1; cout << a[i][j] << " ";}

       }

   }

   if (exista==0) cout << "Nu exista...";

   f06.close();

}

Alte întrebări interesante