|
|||||||
Вычислить сумму всех простых чисел. Задачка на JavaScriptОбсуждение темы Вычислить сумму всех простых чисел. Задачка на JavaScript в разделе HTML, CSS, JavaScript, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Вот почти готовая задачка, но она работает немного не корректно помогите пожалуйста подправить. Задачка - На экране в форме вводятся 10 вещественных чисел. ... |
![]() |
|
|
Опции темы |
|
|
#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>
|
|
|
|
|
#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.. Причина: Добавлено сообщение |
|
|
|
|
#3 | |
|
|
Программа работает почти правильно, единственное что не правильно она не считает 1 как простое число, хотя 1 является простым числом
Цитата:
Макс вы исправили, уже работает стабильнее, но все равно не полностью корректно, единственное что не правильно она не считает 1 как простое число, хотя 1 является простым числом, и она так же прибавляет не целые и отрицательные числа хотя они являются вещественными и не должны суммироваться Последний раз редактировалось denicko; 28.10.2010 в 16:41.. Причина: Добавлено сообщение |
|
|
|
|
|
#4 |
|
|
![]() 1 - не является простым числом. http://ru.wikipedia.org/wiki/%D0%9F%...81%D0%BB%D0%B0 Добавлено через 2 минуты Обработку дробных и отрицательных чисел сами сделайте. Последний раз редактировалось Макс-Текс; 28.10.2010 в 17:20.. Причина: Добавлено сообщение |
|
|
|
|
#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 |
|
Реклама на форуме
Условия размещения рекламы
Биржа ссылок
Заработай на сайте!
|