C: Parovi prijateljskih brojeva

Teme vezane za console/GUI programiranje u C/C++ jeziku
2 post(ov)a • Stranica: 1/1.

C: Parovi prijateljskih brojeva

PostPostao/la displayerror » 27 ruj 2015, 16:48

Potrebna mi je pomoć oko sljedećeg zadatka:
Učitati n prirodnih brojeva i od učitanih ispisati sve parove
prijateljskih brojeva. Dva broja su prijateljski ako je prvi jednak zbiru
djelilaca drugog, a drugi zbiru djelilaca prvog.

Formiram jedan niz i ispitujem djelioce svakog učitanog broja u nizu.
Imam problem sa sumom. Da li je potrebno i sumu predstaviti kao niz?

Kod: Označi sve
#include<stdio.h>
#define MAX 100
int main()
{
    int n,i;
    int niz[MAX];
    do
    {
        printf("n=");
        scanf("%d",&n);
    }
    while(n<1 || n>MAX);
    for(i=0;i<n;i++)
    {
        printf("%d. broj:",i+1);
        scanf("%d",&niz[i]);
    }
    int j;
    int s=0;
    for(i=1;i<=n;i++)
    {
      for(j=1;j<niz[i];j++)
      {
        if(niz[i] % j == 0)
            s=s+j;
      }
      /*if(broj_1==s2 && broj_2==s1)
      printf("(%d,%d)",broj_1,broj_2)*/

    }
    return 0;
}

Re: C: Parovi prijateljskih brojeva

PostPostao/la gagiD » 27 ruj 2015, 18:33

Napravis funkciju koja ce racunati zbir djeljitelja, preglednije je.
Npr.

cpp code
int suma_delitelj(int n) {
int suma(1);

for (int i = 2; i <= n/2; ++i)
if(n % i == 0)
suma += i;

return suma;
}


A uslov bi bio:
cpp code
if (suma_delitelj(i) == j && suma_delitelj(j) == i)
cout << "Par: " << i << " " << j << endl;


2 post(ov)a • Stranica: 1/1.

Na mreži

Trenutno korisnika/ca: / i 1 gost.