W celu rozwiązania zadania, musimy przede wszystkim utworzyć pętlę, w której będziemy sprawdzać podzielność liczb z tablicy przez liczbę p (operacja modulo). Aby zmniejszyć złożoność obliczeniową, będziemy szukać wartości max1 i max2 (odpowiednio dla dwóch boków) w tym samym przebiegu pętli.
Można również zapisać ten algorytm w języku C++. Poniżej zamieszczono program, który rozwiązuje problem dla wariantu drugiego z zadania 1.1.
#include <iostream>
using namespace std;
int main()
{
int max1, max2;
max1 = max2 = 0;
int tab[6] = { 15, 12, 10, 6, 5, 1 };
int p = 5;
for (int i = 0; i <= 5; i++) {
if (tab[i] % p != 0) {
if (tab[i] > max1) {
max2 = max1;
max1 = tab[i];
}
else if (tab[i] > max2)
max2 = tab[i];
}
}
cout << max1 * max2;
return 0;
}