Do pobrania:

Zadanie 1.1. (0–1)
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:
#include <iostream> using namespace std; int main() { cout << "Matura 2016 - Zadanie 1.2" << endl; int a, b; cout << "Podaj a = "; cin >> a; int sumaA = 0; for (int i = 1; i < a; i++) { if (a % i == 0) { sumaA += i; } } b = sumaA - 1; int sumaB = 0; for (int i = 1; i < b; i++) { if (b % i == 0) { sumaB += i; } } if (sumaB == a + 1) { cout << "Liczba skojarzona z liczba " << a << " to liczba " << b << endl; } else cout << "NIE" << endl; return 0; }
Miejsce na obliczenia.
klucz = A[1]
w = 1
n = 6
Tablica A = [4,6,3,5,2,1]
Działanie funkcji przestaw (A)
-------------------------------------------
| w | warunek | Tablica | Zamiana |
-------------------------------------------
| 1 | 1 | {4,6,3,5,2,1} | brak |
-------------------------------------------
| 1 | 2 | {3,6,4,5,2,1} | 4 z 3 |
-------------------------------------------
| 2 | 3 | {3,6,4,5,2,1} | brak |
-------------------------------------------
| 2 | 4 | {3,2,4,5,6,1} | 6 z 2 |
-------------------------------------------
| 3 | 5 | {3,2,1,5,6,4} | 4 z 1 |
-------------------------------------------
Zadanie 2.2. (0–1)
Podaj przykład siedmioelementowej tablicy A, dla której funkcja przestaw(A) dokładnie 5 razy wykona zamień.
Miejsce na obliczenia.
Tablica musi zawierać pięć takich elementów, które są dokładnie mniejsze od klucza, tj. od pierwszego elementu tablicy, zaś pozostałe muszą być większe od klucza.
Przykładem takiej tablicy jest: 10,1,2,3,4,5,12.
Odp. A = 10,1,2,3,4,5,12;
Zadanie 2.3. (0–3)
Tablica A[1..100] zawiera wszystkie liczby całkowite z przedziału <1, 100> w następującej kolejności:
A = [10, 20, 30, ..., 100, 9, 19, 29, ..., 99, 8, 18, 28, ..., 98, ...., 1, 11, 21, ..., 91].
(najpierw rosnąco wszystkie liczby kończące się na 0, potem rosnąco liczby kończące się na 9, potem na 8 itd.)
Podaj wartość zmiennej w oraz wartości trzech pierwszych elementów tablicy A (A[1], A[2], A[3]), po wykonaniu funkcji przestaw(A).
Miejsce na obliczenia.
Zostaną przeniesione wszystkie mniejsze liczby od klucza, czyli od liczby 10. Będą to liczby 9,8,7,6,5,4,3,2,1, w takiej kolejności jaką podałem. Idąc tą drogą element A[1] = 9, A[2] = 8, A[3] = 7, itd. Wartość zmiennej w jest równa ilości działania funkcji zamian, czyli 10.
Odp.:
w = 10
A[1] = 9
A[2] = 8
A[2] = 7