Расписание числа на множители(not easy)
Читая тему "Расписание числа на множители" задача ясна, но не спешите бросать готовый код.Мне нужно, чтобы вы указали ошибку в моем коде.
<script> var number = prompt("Enter number"); var j = 2; var d = 0; var counter = 1; var record = 0; var a; var arr = new Array(); document.write(number+" = "); // здесь мы разделили число на множители и записали в массив arr [] while(j<=number) { while(number%j==0) { number = number/j; arr[d] = j; d++; if(number==1) { break; } } j++; } //можно вивести так : // for(var i = 0; i < arr.length; i++) { // document.write(arr[i]+" "); // } // document.write("<br>"); //----------------------------------------------------------------- //но это еще не все все числа повторяющихся сделать в квадрате или в кубе, четвертой степени и т. д. //я ето делаю так for(var i = 0; i < arr.length; i++) { while (arr[i]==arr[i+1]) { counter++; record = arr[i]; arr.splice(i+1, i+1); } if(arr[i] == record) { document.write(arr[i]+"<sup>"+ counter +"</sup> "); }else { document.write(arr[i]+" "); } if(i != arr.length-1) { document.write(" * "); } counter = 1; } </script> когда я ввожу число 300,200,20 все хорошо но когда я ввожу число 500 или 1000 в последнем числе не хватает одного степени есть 500 это 2 * 2 * 5 * 5 * 5 а у меня получается 2 * 2 * 5 * 5 Что за аномалия ?!?! |
Вычисляется всё нормально. Проблема в функции вывода, а конкретнее здесь:
arr.splice(i+1, i+1);вторым параметром splice должно идти количество(в вашем случае нужно 1), а не позиция. |
Часовой пояс GMT +3, время: 11:53. |