In dem ... habe ich einen Fehler gemacht:
CSS JS Result Skip Results Iframe EDIT ON document.addEventListener('DOMContentLoaded', () => { document.body.innerHTML = `
`; for (let i = 0; i < 80; i++) { if (!p(i - 1)) { continue; } document .querySelector('.number') .insertAdjacentHTML('beforeend', '' + i + ''); } let init = 2;
document.querySelector('.number').value = init; r(init); document.querySelector('.number').addEventListener('change', e => { if (e.target.value == '') { return; } r(parseInt(e.target.value));
e.preventDefault(); }); }); function r(k) { let output = '', data = []; for (let i = 0; i <= (k - 1) * k; i++) { output += '----
'; for (let j = 1; j <= k; j++) { if (data[i] === undefined) { data[i] = []; } let v = f(i, j, k); data[i][j - 1] = v; output += v + '
'; } output += '----
'; } document.querySelector('.output').innerHTML = output; } function p(number) { let p = true; if (number === 1) { return true; } else if (number > 1) { for (let i = 2; i < number; i++) { if
(number % i == 0) { p = false; break; } } if (p) { return true; } else { return false; } } else { return false; } } function f(x, y, k) { if (x === 0) { return y; } if (y === 1) { return
Math.floor((x - 1) / (k - 1)) + 1; } if (x < k) { return k + 1 + (k - 1) * (x - 1) + (y - 2); } let m = Math.floor((x - 1) / (k - 1)) + 1; return (((m - 1) * (k - 1) + x - 1 + (m - 2) * (y - 2)) %
(k - 1)) + (k + 1) + (k - 1) * (y - 2); }
Das Prinzip der OOP, der objektorientierten Programmierung