Informatică, întrebare adresată de mili69, 9 ani în urmă

Doua numere întregi x si y sunt prietene dacă suma divizorilor numărului x este egala cu suma divizorilor numărului y. Sa se găsească toate perechile de numerele prietene din intervalul [a,b].

Răspunsuri la întrebare

Răspuns de ap53
8
#include<iostream> using namespace std; int main() { int a,sa,b,sb,d; cin>>a; cin>>b; sa=1; for(d=2;d<=a/2;d++) if(a%d==0) sa=sa+d; if(sa==b) { sb=1; for(d=2;d<=b/2;d++) if(b%d==0) sb=sb+d; if(sb==a) cout<<"PRIETENE"; } else cout<<"NU SUNT PRIETENE"; }

mili69: Si cum afișez perechile de numere?
Răspuns de express
13
Problema de mai sus este corecta si rezolva o pereche de numere prietene ( prob Prietene de pe pbinfo). Tu vrei perechi de numere prietene intr-un interval. Ti-am facut o sursa C++ care respecta cerinta din problema ta. Succes!
#include <bits/stdc++.h>
int a, b, x, y, k, s1, s2, i;
using namespace std;

int main()
{
    cin >> a >> b;
    for(x = a; x <= b; x ++)
        for(y = b; y >= a; y --)
    {
        s1 = 0;
        for (i = 1; i * i < x; i ++)
        if (x % i == 0) s1 = s1 + i + x / i;
        if (i * i == x) s1 = s1 + i;
        s2 = 0;
        for (i = 1; i * i < y; i ++)
        if (y % i == 0) s2 = s2 + i + y / i;
        if (i * i == y) s2 = s2 + i;

    if (s1 - x == y && s2 - y == x && x != y) cout << x << " " << y << "\n";
    }
    return 0;
}

Alte întrebări interesante