Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.02.2018, 00:32
Новичок на форуме
Отправить личное сообщение для NoJava Посмотреть профиль Найти все сообщения от NoJava
 
Регистрация: 20.02.2018
Сообщений: 1

Расписание числа на множители(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


Что за аномалия ?!?!
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2018, 01:06
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,146

Вычисляется всё нормально. Проблема в функции вывода, а конкретнее здесь:
arr.splice(i+1, i+1);
вторым параметром splice должно идти количество(в вашем случае нужно 1), а не позиция.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простые числа, не превосходящие заданного числа. jutochka123 Общие вопросы Javascript 2 30.09.2017 13:05
Анимация числа, при изменении ширина HTML элемента akkord87 Общие вопросы Javascript 10 15.12.2015 14:43
JS задача. Взаимно простые числа sashok Общие вопросы Javascript 5 23.11.2014 09:16
Есть числа от (0 до 100) что бы все эти числа были заменины в итоге например 110 impi Общие вопросы Javascript 4 08.10.2014 07:30
число 76.4705882.. сделать 76.47? (числа всегда разные) TongaG Ваши сайты и скрипты 3 19.01.2010 06:35