この世界は。。。いいですか?
На вопрос «напишите на листочке программу на любом языке программирования, которая находит простые числа от 1 до миллиона» ты, как и я, напишешь ответ в три строки: полным перебором. А потом на вопрос «а ускорьте ее в два раза» станешь, как я, вспоминать курс высшей математики, морщить лоб и мямлить, что не совсем помнишь алгоритм поиска простых чисел. Про то, что можно просто выбросить из перебора четные числа вспомнишь только вечером.


Комментарии
14.03.2013 в 06:50

Медузка-тян.
А разве простые числа это не те, которые делятся без остатка только на себя и на 1?
14.03.2013 в 07:28

Медузка-тян.
www.ega-math.narod.ru/Liv/Zagier.htm
Теперь я не могу не написать программу =3
Только моих знаний в математике еще маловато =(
Ну, вот и получу!
14.03.2013 в 18:00

Главное, не выбросить 2.
14.03.2013 в 22:15

Медузка-тян.
Я почти придумал как сделать прогу, которая будет определять, простое число или нет.
Я уверен что начало будет таким:
a = STDIN.gets
(2..(a - 1)).to_a
А дальше надо, чтобы выполнилось действие (я пока что не знаю как это точно написать, надо побольше прочитать про массивы):
a % (2..(a - 1)).to_a
А дальше нужно сделать так, чтобы при получение остатка 0 писало, что число не простое.
Ну и конечно же сделать цикл, который будет спрашивать "Do you want continue? y/n" =3
14.03.2013 в 22:21

Медузка-тян.
Вот начало:
b = STDIN.gets.chomp()
puts (2..(b.to_i - 1)).to_a
15.03.2013 в 03:02

この世界は。。。いいですか?
Это какой язык?
15.03.2013 в 07:32

Медузка-тян.
Рубин. Ruby.
15.03.2013 в 08:04

Медузка-тян.
Я придумал как еще мне можно ее написать, только мне требуется время, которого у меня нет.
21.09.2013 в 18:03

> напишите на листочке программу на любом языке программирования, которая находит простые числа от 1 до миллиона

Хм... Пожалуй, перебором проще всего.


> а ускорьте ее в два раза

На листочке? Нереально! Выкидывание чётных чисел даст всего-то ~20%.

Хотя это — python2. А если на «любом языке программирования», то:

Наверняка найдётся язык, в котором есть функция primes. :)
21.09.2013 в 18:48

Медузка-тян.
Ой, а я уже целиком и полностью забыл об этом. Сейчас срубим ее.
21.09.2013 в 18:54

この世界は。。。いいですか?
Гм, товарищи, всегда интересовало: а чем вас привлекают такие эзотерические языки? Почему не C/С++, не Java, не Pascal/Delphi, не Basic?
21.09.2013 в 19:01

Медузка-тян.
Я как бы начинающий, так что я начал с Ruby, поскольку он простой, но и с очень широкими возможностями, а С++ я немного учил, но перейду к нему гораздо позже.
21.09.2013 в 19:34

Медузка-тян.
Готово:
puts "1"
def solve
x = 1
loop do
x = x + 1
y = 1
loop do
y = y + 1
if y == x
puts x
end
break if x%y == 0
#break if y == x - 1 || x % y == 0
end
break if x == 100
end
end

solve

Оно находит простые числа от 1 до 100, но если сделать break if x == 1000000, то все будет супер.

Я изобрел способ нахождения простых чисел, я - молодец!
22.09.2013 в 06:00

この世界は。。。いいですか?
Император Медуза, но это же тоже полный перебор... Долго будет работать. Решето Эратосфена и то быстрее.
Ладно, фиг с ним.
22.09.2013 в 12:00

Медузка-тян.
У меня практически мгновенно выдает. Могу написать на С++, тогда быстрее будет.