👤

1. Sa se afiseze elementele prime aflate pe diagonala principala a unei matrice.
2. Sa se afiseze suma elementelor perfecte aflate pe diagonala secundara a unei matrice.


Răspuns :

Problema 1:
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    int a[100][100], m;
    cin >> m;
    for (int i=0; i<m; i++)
        for (int j=0; j<m; j++)
        {
            cin >> a[i][j];
            if (i==j)
            {
                int OK=1;
                if (a[i][j]<2) OK = 0;
                if (a[i][j]!=2)
                    for (int k=2; k<=sqrt(a[i][j]) && OK; k++)
                        if (a[i][j]%k==0) OK=0;
                if (OK) cout << a[i][j] << " ";
            }
        }
    return 0;
}

Problema 2 (banuiesc ca prin element perfect te-ai referit la element patrat perfect):
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    int a[100][100], m;
    cin >> m;
    for (int i=0; i<m; i++)
        for (int j=0; j<m; j++)
        {
            cin >> a[i][j];
            if (i+j==m-1 && sqrt(a[i][j])*sqrt(a[i][j])==a[i][j])
                    cout << a[i][j];
        }
    return 0;
}
1)

#include <iostream>
using namespace std;

int v[100][100];

int main() {
  int n, i, j;
  cin >> n;
  for(i = 0; i < n; i++)
    for(j = 0; j < n; j++) {
      cin >> v[i][j];
        if(i == j) {
          int d = 2;
          while( d * d <= v[i][j] && v[i][j] % d != 0)
            d++;
          if(d * d > v[i][j] && v[i][j] > 1)
            cout << v[i][j] <<" ";
        }
  }
  return 0;

2) Un numar perfect este un numar egal cu suma divizorilor sai din care se exclude numarul insusi.

#include <iostream>
using namespace std;

int v[100][100];

int main() {
  int n, i, j, stot = 0, sdiv;
  cin >> n;
  for(i = 0; i < n; i++)
    for(j = 0; j < n; j++) {
      cin >> v[i][j];
        if(i + j == n - 1) {
          int d = 2;
          sdiv = 1;
          while( d * d < v[i][j]) {
            if(v[i][j] % d == 0) {
              sdiv = sdiv + d;
              sdiv = sdiv + v[i][j] / d;
            }
            d++;
          }
          if(d == v[i][j])
            sdiv = sdiv + d;
          if(sdiv == v[i][j])
            stot = stot + sdiv;
        }
    }
  cout << stot;
  return 0;
}
}


Vă mulțumim că ați accesat site-ul nostru dedicat Informatică. Sperăm că informațiile furnizate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Vă așteptăm cu drag să reveniți și nu uitați să ne salvați la favorite!


Ze Studies: Alte intrebari