Matura 2016 (maj). Zadanie 1. Liczby skojarzone

Matura 2016 (maj). Zadanie 1. Liczby skojarzone

Dwie różne liczby całkowite a i b większe od 1 nazwiemy skojarzonymi, jeśli suma wszystkich różnych dodatnich dzielników a mniejszych od a jest równa b+1, a suma wszystkich różnych dodatnich dzielników b mniejszych od b jest równa a+1.
Skojarzone są np. liczby 140 i 195, ponieważ:
  1. dzielnikami 140 są 1, 2, 4, 5, 7, 10, 14, 20, 28, 35, 70, a ich suma wynosi 196 = 195+1.
  2. dzielnikami 195 są 1, 3, 5, 13, 15, 39, 65, a suma tych liczb równa jest 141 = 140+1.

Zadanie 1.1. (0–1)

Zbadaj, które z następujących par liczb (a, b) są liczbami skojarzonymi, i wypełnij poniższą tabelę:
a b dzielniki a
(mniejsze od a)
dzielniki b
(mniejsze od b)
suma
dzielników
a
suma
dzielników
b
skojarzone
TAK/NIE
 78  64 1,2,3,6,13,26,39 1,2,4,8,16,32 90 63 NIE
 20  21 1,2,4,5,10 1,3,7  23 12 NIE
 75  48  1,3,5,15,25 1,2,3,4,6,8,12,16,24 49 76 TAK
Obliczenia:

Przykład 1.
a = 20;
Dzielniki a to: 1,2,4,5,10. 
Suma dzielników: 1+2+4+5+10 = 22
b = 21;
Dzielniki b to: 1,3,7.
Suma dzielników: 1+3+7 = 11

Sprawdzenie:
a + 1 = suma dzielników b ?
21 ≠ 11
i
b + 1 = suma dzielników a ?
22 = 22

Przykład 2.
a = 75;
Dzielniki a to: 1,3,5,15,25.
Suma dzielników: 1+3+5+15+25 = 49
b = 48;
Dzielniki b to: 1,2,3,4,6,8,12,16,24.
Suma dzielników: 1+2+3+4+6+8+12+16+24 = 76

Sprawdzenie:
a + 1 = suma dzielników b ?
76 = 76
i
b + 1 = suma dzielników a ?
49 = 49

Zadanie 1.2. (0–4)

Dana jest liczba całkowita a większa od 1. Ułóż i zapisz w wybranej przez siebie notacji algorytm, który znajdzie i wypisze liczbę b skojarzoną z a lub komunikat „NIE”, jeśli taka liczba nie istnieje.
W zapisie algorytmu możesz korzystać tylko z następujących operacji arytmetycznych: dodawania, odejmowania, mnożenia, dzielenia całkowitego i obliczania reszty z dzielenia.

Uwaga:
Przy ocenie algorytmu będzie brana pod uwagę liczba operacji arytmetycznych wykonywanych przez Twój algorytm.

Specyfikacja:
Dane: Liczba całkowita a > 1.
Wynik: Liczba całkowita b skojarzona z a lub komunikat „NIE”, jeśli taka liczba nie istnieje.

Algorytm:

int main()
{
 cout << "Zadnie 1. Matura 2016 - maj!" << endl;
 int a,b;
 cout << "Podaj a = ";
 cin >> a;
 cout << "Podaj b = ";
 cin >> b;
 int suma1 = 0;
 cout << " Dzielniki a: ";
 for (int i=1; i<a; i++)
 if ( a % i == 0 ) {
 cout << i << " ";
 suma1 += i;
 }
 cout << endl << " Suma dzilnikow = " << suma1 << endl;

int suma2 = 0;
cout << ” Dzielniki b: „;
for (int i=1; i<b; i++)
if ( b % i == 0 ) {
cout << i << ” „;
suma2 += i;
}
cout << endl << ” Suma dzielnikow = ” << suma2 << endl;
cout << ” Liczby skojarzone: „;
if (suma1==b+1 && suma2==a+1) cout << ” TAK ” << endl;
else cout << ” NIE ” << endl;
return 0;
}

Leave a Reply

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>