044 – Pentagonale Zahlen

 

Pentagonale Zahlen werden durch die Formel

    \[P_n=\frac{n(3n-1)}{2}\]

gebildet. Die ersten zehn pentagonalen Zahlen sind: 1, 5, 12, 22, 35, 51, 70, 92, 117, 145, …

Es ist P4 + P7 = 22 + 70 = 92 = P8. Die Differenz 70 – 22 = 48 ist aber nicht pentagonal.

Finde das Paar von pentagonalen Zahlen Pj und Pk, für das die Summe und Differenz pentagonal sind, und für die D = |Pk – Pj| minimal ist. Was ist der Wert von D?

Lösung

Wir testen wieder “alle” Möglichkeiten gleichzeitig. Da keine obere Grenze gegeben ist, berechnen wir auf gut Glück 2500 Elemente der pentagonalen Zahlen.

clc
clear all
tic

grenze = 2500;
n = 1 : grenze;
Pn = n .* (3 * n - 1) / 2;
b = meshgrid(Pn);

summe = b + b';
pentSumme = (1 + sqrt(1 + 24 * summe)) / 6;
istPentSumme = pentSumme == floor(pentSumme);

differenz = b - b';
differenz(differenz < 0) = 0;
pentDifferenz = (1 + sqrt(1 + 24 * differenz)) / 6;
istPentDifferenz = pentDifferenz == floor(pentDifferenz);

beidePent = istPentSumme + istPentDifferenz;
[i j] = find(beidePent == 2, 100)
Pklein = i .* (3 .* i - 1) / 2
Pgross = j .* (3 .* j - 1) / 2
temp = Pgross - Pklein

toc

Ergebnis: 5482660
Rechenzeit: 0.330423 Sekunden

Ähnliche Artikel

Kommentar verfassen