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
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
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;
}
#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
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă