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

Ajutatima pls
Cerinţa:
Se dă un vector cu n numere naturale. Să se determine câte dintre perechile de elemente din vector au același număr de divizori.
Date de intrare:
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii, reprezentând elementele vectorului.
Date de ieşire:
Programul afișează pe ecran numărul c, reprezentând valoarea cerută.
Restricţii şi precizări:
1 ≤ n ≤ 1000
elementele vectorului vor fi cuprinse între 1 și 1.000.000.000

Răspunsuri la întrebare

Răspuns de korenivaniel
1

Răspuns:

#include <stdio.h>

#include <stdlib.h>

int main() {

   int n, i, j, count, divisors, same_divisors = 0;

   printf("nr total: ");

   scanf("%d", &n);

   int arr[n];

   for (i = 0; i < n; i++) {

       printf("nr natural: ");

       scanf("%d", &arr[i]);

   }

   for (i = 0; i < n; i++) {

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

           count = 0;

           divisors = 0;

           for (int k = 1; k <= arr[i]; k++) {

               if (arr[i] % k == 0) {

                   count++;

               }

           }

           for (int k = 1; k <= arr[j]; k++) {

               if (arr[j] % k == 0) {

                   divisors++;

               }

           }

           if (count == divisors) {

               same_divisors++;

           }

       }

   }

   printf("nr perechi de numere care au același numar de divizori: ");

   printf("%d", same_divisors);

   return 0;

}

Explicație:


anamorus998: Multumesc!
Alte întrebări interesante