Numerele x si y sunt prietene daca suma divizorilor lui x este egala cu suma divizorilor lui y. Sa se gaseasca toate numerele prietene din intervalul [a,b].
Răspunsuri la întrebare
Răspuns de
1
Salut! Ti-am facut o sursa in C++...in conditiile in care nu ai specificat nici-o restrictie. Succes!
#include <bits/stdc++.h>
int a, b, ii, jj, x, y , s1 , s2 , i;
using namespace std;
int main()
{
cin >> a >> b;
for(ii = a; ii < b; ii ++)
for(jj = a + 1; jj <= b; jj ++)
{
x = ii; y = jj;
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) cout << x << " " << y << "\n";
}
return 0;
}
#include <bits/stdc++.h>
int a, b, ii, jj, x, y , s1 , s2 , i;
using namespace std;
int main()
{
cin >> a >> b;
for(ii = a; ii < b; ii ++)
for(jj = a + 1; jj <= b; jj ++)
{
x = ii; y = jj;
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) cout << x << " " << y << "\n";
}
return 0;
}
Alte întrebări interesante
Studii sociale,
8 ani în urmă
Limba română,
8 ani în urmă
Istorie,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă