Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - ASP и VBScript

Страница: 1 |

 

  Вопрос: 2 не сложные задачи. Помогите плз... Добавлено: 21.05.10 19:47  

Автор вопроса:  Андрей
Задачки вроде не сложные, но я что-то запутался...
1. Присвойте логической переменной P значение TRUE, если целое n (n>1) является простым числом, и значение FALSE - в противном случае
2. Даны целое число a и натуральное число n. Вычислите a*(a+1)*...*(a+n-1)

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 Андрей



Вопросов: 1
Ответов: 6
 Профиль | | #1 Добавлено: 21.05.10 19:51
Прошу прощения, забыл, это на VBScript

Ответить

Номер ответа: 2
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 21.05.10 20:05
  1. p = true
  2. for i = 2 to sqrt(n)
  3.     if n mod i = 0 then p = false
  4. next
  5.  
  6. result = 1
  7. for i = 0 to n-1
  8.     result = result * (a + i)
  9. next

Ответить

Номер ответа: 3
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #3 Добавлено: 22.05.10 02:40
  1. for i = 2 to sqrt(n)
  2.     if n mod i = 0 then p = false
  3. next

А exit for не нужен разве?

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 22.05.10 03:22
Не обязателен.

Ответить

Номер ответа: 5
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #5
Добавлено: 22.05.10 10:37
Шарп не любит оптимизировать алгоритмы=) И в VB нет функции sqrt, насколько я помню. Там sqr.

Ответить

Номер ответа: 6
Автор ответа:
 Андрей



Вопросов: 1
Ответов: 6
 Профиль | | #6 Добавлено: 22.05.10 19:43
  Спасибо!
Но они не работают :)
1.
  1. inputbox(n&"введите n")
  2. p = true
  3. for i = 2 to sqr(n)
  4. if n mod i = 0 then p = false
  5. next
  6. msgbox ("P="&p)

здесь всегда выводится "истина"

2.
  1. inputbox(a&"Введите а")
  2. inputbox(n&"Введите n")
  3. result = 1
  4. for i = 0 to n-1
  5.     result = result * (a + i)
  6. next
  7. msgbox result

здесь всегда вылезает "1"

т.е. я цикл почему-то не выполняется.. в чем проблема может быть?

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 22.05.10 22:51
нет функции sqrt, насколько я помню. Там sqr

Подловил! :)

цикл почему-то не выполняется

  1. n = CLng(InputBox("Введите n"))

Ответить

Номер ответа: 8
Автор ответа:
 Андрей



Вопросов: 1
Ответов: 6
 Профиль | | #8 Добавлено: 22.05.10 23:06
Спасибо :) теперь работает.
Только 1 вопрос - почему в первой задаче именно квадратный корень, а не, например, n-1? Потомучто так вроде тоже работает..

Ответить

Номер ответа: 9
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #9 Добавлено: 23.05.10 01:07
Делители большие чем SQRT(N) нет смысла проверять.

Ответить

Номер ответа: 10
Автор ответа:
 Андрей



Вопросов: 1
Ответов: 6
 Профиль | | #10 Добавлено: 23.05.10 02:11
ясно, спасибо)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам