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:
#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: