[C#] Arrays - 15 задача


3

Условие:

15.Write a program that finds all prime numbers in the range [1...10 000 000]. Use the sieve of Eratosthenes algorithm (find it in Wikipedia).

Мое решение:

CLICK!!!




Отговори



0

http://pastebin.com/cVPmHD1N

мислите ли че моето решение е вярно или аз съм се излъгал нещо че задачата е прекалено лесна :D


от kassskata (128 точки)


0
Решението ти определено не работи коректно. Например за числото 11х23 = 253, което не е просто число, твоят алгоритъм го дава като просто. Твоят алгоритъм няма нищо общо с алгоритъма на Ератостен. Алгоритъмът на Ератостен работи по следния начин: 1. Взимаш числото 2 и го добавяш в списъка с прости числа. След това маркираш всички числа през 2 в изходния списък (в случая числата от 1 до 10 000 000), т.е. 4; 6; 8; 10 .... 2хN .... 9 999 998; 10 000 000. 2. Взимаш първото немракирано число - в случая 3 и го добавяш в списъка с прости числа. Маркираш всички, които не са маркирани от предно маркиране, през 3 в изходния списък, т.е. 9; 15; 21; ... 3xN ... 9 999 993; 9 999 999. 3. Взимаш първото немаркирано число, в случая 5 и т.н. и т.н.
Тук е описан алгоритъма на Ератостен http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
Простите числа от 1 до 10 000 може да видиш тук http://www.whatareprimenumbers.com/prime-numbers-up-to-10000.html#

от wnvko (3123 точки)


0
Ето и моето решение( горната граница на диапазона се въвежда от конзолата):
http://pastebin.com/3tghkd1T

от Stanislav288 (0 точки)