029 – Anzahl an unterschiedlichen Potenzen

 

Betrachte alle Integer-Kombinationen von a^b für 2\le a\le 5 und 2\le b\le 5:

2^2=4\quad 2^3=8\quad 2^4=16\quad 2^5=32
3^2=9\quad 3^3=27\quad 3^4=81\quad 3^5=243
4^2=16\quad 4^3=64\quad 4^4=256\quad 4^5=1024
5^2=25\quad 5^3=125\quad 5^4=625\quad 5^5=3125

Wenn man aus diesen 16 Zahlen die doppelten löscht, bleiben 15 unterschiedliche übrig:

4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125

Wie viele unterschiedliche Zahlen erhält man für 2\le a\le 100 und 2\le b\le 100 ?

Lösung

Hier bekommt man bei anderen Programmiersprachen Probleme, da Zahlen wie 100^100 nicht im Integerbereich liegen. Matlab kommt mit so großen Zahlen aber zurecht, wir implementieren daher einen Brute Force Ansatz.

Matlab-Code:

function n = e029()
    tic;
    max = 100;
    res = zeros(1, (max-1)^2);
    index = 0;
    for a = 2 : max
        for b = 2 : max
            index = index + 1;
            res(index) = a^b;
        end
    end
    res = sort(res);
    n = 1;
    for i = 2 : index
        if res(i) ~= res(i - 1)
            n = n + 1;
        end
    end
    toc;
end

Ergebnis: 9183
Rechenzeit: 0.010267 Sekunden

Ähnliche Artikel

Kommentar verfassen