Studiowałem programowanie i znalazłem ćwiczenie, aby napisać algorytm znajdujący "liczby trójkątów" (liczby, które są podzielne przez dokładnie 3 liczby). Napisałem to:Lepsze rozwiązanie do wyszukiwania liczb z dokładnie 3 dzielnikami
function threesomeNumber(N) {
var found = 0;
var i = 1;
var numberOfDivisions = 1;
while (found < N) {
for (var j = 2; j <= i; j++) {
if (i % j === 0) {
numberOfDivisions++;
}
}
if (numberOfDivisions === 3) {
found++;
console.log(found + " = " + i);
}
numberOfDivisions = 1;
i++;
}
}
Problem polega na tym, że działa on wolno i zastanawiałem się, czy można to zrobić szybciej. Czy ktokolwiek wie o bardziej zoptymalizowanym rozwiązaniu? Chcę, żeby znalazła N kolejnych liczb z trójkami.
Szukałem lepszego rozwiązania dla znalezienia threesomes na dłuższą chwilę teraz. Moje zwykłe podejście zadziałało tylko raz, aw jego trakcie napotkałem błąd runtime. – Chev
Te nazwy zmiennych nie są poważne, będę je edytować dla jasności. –
@ Krzysztof, podejrzewam, że to pytanie zyska dużo głosów z samego tytułu. Wskazówka: w języku angielskim * trójkąt * nie oznacza w rzeczywistości * liczb, które są podzielne przez dokładnie 3 cyfry *. –