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
Răspunsuri la întrebare
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:
#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();
}