Wpis z mikrobloga

Witajcie.
Jakiś czas temu rozpocząłem kurs na #freecodecamp i od kilku dni, a dokładnie 2, siedziałem nad programem mającym zwrócić najmniejszą wspólną wielokrotność wszystkich liczb z przedziału podanego na wejście funkcji. Np input : [1, 5] powinno zwrócić wynik 60. Na początku szło mi opornie ale napisałem program, który przy podaniu większego przedziału po prostu się zawieszał. Dnia dzisiejszego napisałem algorytm, który działa dość sprawnie nawet dla dużych liczb. Tutaj macie linka do mojego kodu: https://jsfiddle.net/nL2112go/ (wybaczcie za bałagan w kodzie ale dopiero się uczę :p). Na githubie znalazłem kilka programów ( https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Algorithm-Smallest-Common-Multiple ) , które dają taki sam wynik ale po osiągnięciu bardzo bardzo bardzo wysokich wyników zaczynają się od siebie różnic :/. Teraz pytanie, czy gdzieś popełniłem błąd? Trochę mi to nie pasuje skoro dla input: [1, 40] wyniki są takie same czyli 5342931457063200, później już coś zaczyna się sypać i wyniki są inne. Może to wina przeglądarki i więcej po prostu nie jest w stanie prawidłowo obliczyć?
Czy to normalne, że na początku, aż tak długo zajmuję mi rozwiązanie poprawnie takiego zadania? Może się do tego nie nadaje...
Proszę również o ocenę mojego kodu :P
#programowanie #javascript
  • 11
@army12: sprawdź też czy zakresu typu nie przekraczają ( nie znam javascriptu, może osiąga dodatniego maxa i potem ucina najmniej znaczące bity )
@khejit: dla wszystkich liczb z przedziału wejsciowego, dzieli kazda, zaczynajac od dzielenia przez dwa, az do momentu uzyskania wyniku 1. Przez dwa dzieli dana liczbe do czasu, az reszta z dzielenia jest rowna zero, potem przechodzi do dzielenia liczby, ktora zostala, przez kolejna liczbe czyli 3 jezeli wynik dzielenia rowniez jest bez reszty, jezeli nie przechodzi do kolejnej liczby, itd. Zwieksza mianownik do momentu uzyskania 1, cos jak tutaj https://pl.wikipedia.org/wiki/Najmniejsza_wsp%C3%B3lna_wielokrotno%C5%9B%C4%87
Za