|
Вычислить сумму всех простых чисел. Задачка на JavaScriptОбсуждение темы Вычислить сумму всех простых чисел. Задачка на JavaScript в разделе HTML, CSS, JavaScript, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Вот почти готовая задачка, но она работает немного не корректно помогите пожалуйста подправить. Задачка - На экране в форме вводятся 10 вещественных чисел. ... |
|
Опции темы |
27.10.2010, 20:51 | #1 |
|
Вот почти готовая задачка, но она работает немного не корректно помогите пожалуйста подправить. Задачка - На экране в форме вводятся 10 вещественных чисел. Вычислите сумму всех простых чисел. Дело в том что данная программа считает и простые и вещественные вмести, а надо чтобы программа считала только простые а числа не являющиеся простыми просто не замечала (простые числа - те числа которые делятся на 1 и сами на себя, например 1, 3, 5, 7, 13 и т.д.)
Код:
<html> <head> <script type="text/JavaScript"> function Cymma(obj) { var MyArr; MyArr=new Array(10); MyArr[0]=parseFloat(obj.num1.value); MyArr[1]=parseFloat(obj.num2.value); MyArr[2]=parseFloat(obj.num3.value); MyArr[3]=parseFloat(obj.num4.value); MyArr[4]=parseFloat(obj.num5.value); MyArr[5]=parseFloat(obj.num6.value); MyArr[6]=parseFloat(obj.num7.value); MyArr[7]=parseFloat(obj.num8.value); MyArr[8]=parseFloat(obj.num9.value); MyArr[9]=parseFloat(obj.num10.value); var res=(MyArr[0]+MyArr[1]+MyArr[2]+MyArr[3]+MyArr[4]+MyArr[5]+MyArr[6]+MyArr[7]+MyArr[8]+MyArr[9]); return res; } </script> </head> <body> <form name="form1"> Введите первое число: <input type="text" name="num1"><br> Введите второе число: <input type="text" name="num2"><br> Введите третье число: <input type="text" name="num3"><br> Введите четвертое число: <input type="text" name="num4"><br> Введите пятое число: <input type="text" name="num5"><br> Введите шестое число: <input type="text" name="num6"><br> Введите седьмое число: <input type="text" name="num7"><br> Введите восьмое число: <input type="text" name="num8"><br> Введите девятое число: <input type="text" name="num9"><br> Введите десятое число: <input type="text" name="num10" onChange="form1.rez.value=Cymma(document.form1)"><br> Результат: <input type="text" name="rez"> </form> </body> </html> |
|
28.10.2010, 11:04 | #2 |
|
В JS вставить функцию:
Код:
function SimpleNum(x) { if (x == 1) { return 0; } else { for(i = 2; i < x; i = i + 1) { a = x%i; if(a == 0) { return 0; break; } } if (x == 0) { return 0; } else { return x; } } } Код:
var res=(SimpleNum(MyArr[0])+SimpleNum(MyArr[1])+SimpleNum(MyArr[2])+SimpleNum(MyArr[3])+SimpleNum(MyArr[4])+SimpleNum(MyArr[5])+SimpleNum(MyArr[6])+SimpleNum(MyArr[7])+SimpleNum(MyArr[8])+SimpleNum(MyArr[9])); лучше так: Код:
function SimpleNum(x) { if ((x == 1) || (x == 0)) { return 0; } else { for(i = 2; i < x; i = i + 1) { a = x%i; if(a == 0) { return 0; } } return x; } } Последний раз редактировалось Макс-Текс; 28.10.2010 в 11:04.. Причина: Добавлено сообщение |
|
28.10.2010, 16:41 | #3 | |
|
Программа работает почти правильно, единственное что не правильно она не считает 1 как простое число, хотя 1 является простым числом
Цитата:
Макс вы исправили, уже работает стабильнее, но все равно не полностью корректно, единственное что не правильно она не считает 1 как простое число, хотя 1 является простым числом, и она так же прибавляет не целые и отрицательные числа хотя они являются вещественными и не должны суммироваться Последний раз редактировалось denicko; 28.10.2010 в 16:41.. Причина: Добавлено сообщение |
|
|
28.10.2010, 17:20 | #4 |
|
1 - не является простым числом. http://ru.wikipedia.org/wiki/%D0%9F%...81%D0%BB%D0%B0 Добавлено через 2 минуты Обработку дробных и отрицательных чисел сами сделайте. Последний раз редактировалось Макс-Текс; 28.10.2010 в 17:20.. Причина: Добавлено сообщение |
|
28.10.2010, 21:19 | #5 |
|
Ускорьте выполнение скрипта в 2 раза
В цикле: for(i = 2; i < x; i = i + 1) считайте до i < x/2, а не до х. для i >= x/2 по-любому не будет делиться |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как ограничить сумму красок в фотошопе? | DeCa | Растровая графика | 1 | 20.04.2011 20:12 |
Серверы от $50 (Франция) от простых до навороченных | iph | Платный хостинг | 0 | 08.02.2011 01:24 |
Определить сумму первых n элементов последовательности | denicko | HTML, CSS, JavaScript | 2 | 28.10.2010 11:50 |
Как вычислить кол-во созданных сессий в php | battrack | ASP, Perl, PHP и MySQL | 1 | 25.08.2010 18:46 |
Вычислить процент | SooN | ASP, Perl, PHP и MySQL | 6 | 22.11.2006 14:04 |
Реклама на форуме
Условия размещения рекламы
Биржа ссылок
Заработай на сайте!
|