Автор Тема: Написать программу определения простых чисел на Java Script  (Прочитано 9410 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Round

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
как написать программу определения простых чисел на Java Script? в смысле какой алгоритм
« Последнее редактирование: 21 Февраля 2010, 18:11:23 от Asix »

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Алгоритм такой:
берете в цикле пробегаете числа от проверяемого-1 до 2, если деление с остатком дает остаток 0, то число на самом деле сложное и прерываете его, а если весь цикл пройден значит число простое. Далее можно предложить и такой алгоритм перебираем числа от 2 до корня из прверяемого, выполняя опять же деление с остатком
Вот пример на паскале
...
for i:=2 to trunc(sqrt(N)) do//округляем корень до целого
begin
if n mod i<>0 do
begin
IsSimp:=false;
break;
end;
IsSimple:=true;
end; 
...       
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Round

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
<HTML>
<!-- saved from url=(0014)about:internet -->
<Script>
x=4;
a=0;
for(i=2; i<=1000000; i=i+1){
a=x%i;
if(a=0){
document.writeln("составное");
}
}
document.writeln("простое");
</Script>
</HTML>

не работает... (( найдите ошибку, плиз..

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Ну начнем с того что напишем так: 
<HTML>
<!-- saved from url=(0014)about:internet -->
<Script>
x=4;
a=0;
for(i=2; i<=1000000; i=i+1){
a=x%i;
if(a==0){
document.writeln("составное");
}
}
document.writeln("простое");
</Script>
</HTML>
Запомните в JS сравнение записывается как ==. Можно оптимизировать вариант Ваш:
<HTML>
<!-- saved from url=(0014)about:internet -->
<Script>
x=4;
a=0;
for(i=2; i<=1000000; i=i+1){

if(x%i==0){
document.writeln("составное");
}
}
document.writeln("простое");
</Script>
</HTML>

Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Round

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
маленькая поправка: надо включить ещё один блок проверки условия)
if(x=a){
продолжать сначала
}
else{
продолжать
}

Получается так:
<HTML>
<!-- saved from url=(0014)about:internet -->
<Script>
x=4;
a=0;
for(i=2; i<=1000000; i=i+1){
if(x=a){
продолжать сначала (как это написать??)
}
else{
}
a=x%i;
if(a==0){
document.writeln("составное");
}
}
document.writeln("простое");
</Script>
</HTML>

как бы это написать.. не подскажите? :)

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Получается так:
<HTML>
<!-- saved from url=(0014)about:internet -->
<Script>
x=4;
a=0;
for(i=2; i<=1000000; i=i+1){//Если не поможет измените тип на цикл while
if(x==a){
i=2;
}
else{
}
a=x%i;
if(a==0){
document.writeln("составное");
}
}
document.writeln("простое");
</Script>
</HTML>
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Round

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
программа некорректно работает.. можете сами проверить: достаточно вставить программу в блокнот и сохранить с расширением .htm
Думаю, дело где-то в последних строках..  т.е. он в цикле выдает "составное, составное, составное..." и все время выдает простое. Помогите..)
<HTML>
<!-- saved from url=(0014)about:internet -->
<Script>
x=4;
a=0;
for(i=2; i<=1000000; i=i+1){
if(x==a){
i=i+1; // внес свою поправку))
}
else{
}
a=x%i;
if(a==0){
document.writeln("составное");
}
}
document.writeln("простое");
</Script>
</HTML>

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Значит поправка: там где пишет составное вставь break
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Round

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
все равно не получается..(( может в алгоритме ошибка?

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
<HTML>
<!-- saved from url=(0014)about:internet -->
<Script>
x=6;
a=0;
simp=true;//флаг
for(i=2; i<=x-1; i=i+1){
if(x==a){
i=i+1; // внес свою поправку))
}
else{
}
a=x%i;
if(a==0){
simp=false;
break;
}
else
{
simp=true;
}
}
if (simp==false){


document.writeln("NonSimp");
}else{
document.writeln("Simp");
}



</Script>
</HTML>
Ошибка не в алгоритме а в его реализации)))
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Round

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
ого)) какой поворот)) спасибо!! спасибо за Ваше терпение))

 

Блок схемы, как составить блок-схему алгоритма определения?

Автор alekssah

Ответов: 0
Просмотров: 2068
Последний ответ 07 Декабря 2010, 16:48:04
от alekssah
определения точки в многоугольнике

Автор ciaonataha

Ответов: 1
Просмотров: 2046
Последний ответ 11 Сентября 2009, 18:57:06
от Данила
Помогите решить (Создать двумерный массив вещественных чисел ...)

Автор Rydon

Ответов: 7
Просмотров: 2802
Последний ответ 29 Ноября 2009, 17:36:15
от Rydon
Турбо паскаль, программа для нахождения НОД трех чисел, помогите

Автор Иринки

Ответов: 1
Просмотров: 8607
Последний ответ 23 Ноября 2010, 22:29:53
от testtest
Из двух введенных множеств чисел составить третье множество

Автор Tata.8383

Ответов: 1
Просмотров: 1640
Последний ответ 09 Декабря 2010, 01:07:13
от Данила