Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2010, 18:38   #1
мария2507
Пользователь
 
Регистрация: 21.12.2009
Сообщений: 47
По умолчанию найти из указанного диапазона все простые числа

необходимо найти из указанного диапазона все простые числа
мария2507 вне форума Ответить с цитированием
Старый 02.04.2010, 20:16   #2
kim2
Форумчанин
 
Регистрация: 23.03.2010
Сообщений: 101
По умолчанию

=СУММПРОИЗВ(Ч(ОСТАТ(A1;(СТРОКА($A$1 :ИНДЕКС(A:A;A1))))=0))<3

ИСТИНА укажет простые числа.
kim2 вне форума Ответить с цитированием
Старый 03.04.2010, 10:16   #3
мария2507
Пользователь
 
Регистрация: 21.12.2009
Сообщений: 47
По умолчанию

нее.... надо в модуле!!!
мария2507 вне форума Ответить с цитированием
Старый 03.04.2010, 13:11   #4
андей
Пользователь
 
Регистрация: 27.09.2008
Сообщений: 69
По умолчанию

Function prost(chis As Variant) As String
Dim gran, ind, j
If chis - Int(chis) <> 0 Then
prost = "СОСТАВНОЕ"
Exit Function
End If
gran = Abs(Int(-chis ^ 0.5))
ind = 1
For j = 2 To gran
If chis Mod j = 0 Then
prost = "СОСТАВНОЕ"
Exit Function
Else
ind = ind + 1
End If
Next j
If ind = gran Then prost = "ПРОСТОЕ"
End Function
Андрей
андей вне форума Ответить с цитированием
Старый 03.04.2010, 14:02   #5
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

http://ru.wikipedia.org/wiki/%D0%A0%...B8%D0%BD%D0%B0
http://ru.wikipedia.org/wiki/%D0%A0%...B0%D0%BC%D0%B0
Aent вне форума Ответить с цитированием
Старый 03.04.2010, 16:15   #6
мария2507
Пользователь
 
Регистрация: 21.12.2009
Сообщений: 47
По умолчанию

я уже всю википендию облазила(( все равно не понимаю какая диная формула для нахождения этих чисел(((
мария2507 вне форума Ответить с цитированием
Старый 03.04.2010, 16:17   #7
андей
Пользователь
 
Регистрация: 27.09.2008
Сообщений: 69
По умолчанию

СУММПРОИЗВ(Ч(ОСТАТ(A1;(СТРОКА($A$1 :ИНДЕКС(A:A;ОКРУГЛ(A1^0.5;0)))))=0) )=1
быстрее
Андрей
андей вне форума Ответить с цитированием
Старый 03.04.2010, 16:37   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub PrChi()
  r = 3
  Cells(1, 1) = 1: Cells(2, 1) = 2: Cells(3, 1) = 3:
  v = 3
  Do
    v = v + 2
    For i = 3 To v Step 2
      If r >= 50 Then Exit Sub
      If v Mod i = 0 Then Exit For
      If v / i < i Then r = r + 1: Cells(r, 1) = v: Exit For
    Next
  Loop Until False
End Sub
в строке If r >= 50 Then Exit Sub, замените 50 на любое число, сколько первых простых чисел вам надо. А предложенными выше формулами можете проверить являются ли сгенерированные числа простыми. Алгоритм сделан на интуиции, математически недоказан, возможны проколы...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 03.04.2010, 16:38   #9
мария2507
Пользователь
 
Регистрация: 21.12.2009
Сообщений: 47
По умолчанию

Loop Until False а что это???
и за что вы обозначили v? подскажите пожалуйста!!

Последний раз редактировалось мария2507; 03.04.2010 в 16:41.
мария2507 вне форума Ответить с цитированием
Старый 03.04.2010, 17:09   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

v - это кандидат на звание простого числа, если оказывается действительно простым числом (согласно моего алгоритма) то записывается на лист.
кстати, алгоритм очень ускоренный, я не перебираю все числа до v, а лишь до определенного значения, своего для каждого v

Loop Until False а что это??? это окончание цикла. строка с значением 50 может быть вообще выброшена, а эта изменена на
Loop Until R<50
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти все натуральные числа,не превосходящие заданного n fredperry1661 Помощь студентам 1 02.02.2010 17:10
определить все простые числа не превосходящие заданного N QBasic werus Помощь студентам 4 23.04.2009 13:32
Среди чисел из интервала от А до В найти все простые. veterok Помощь студентам 1 22.04.2009 19:23
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49