Правила прості:
- Перші n праймів (не праймес нижче n ) повинні бути надруковані до стандартного виводу, розділеного новими рядками (прайми повинні бути згенеровані в коді)
- праймери не можуть бути згенеровані вбудованою функцією або через бібліотеку , тобто використання вбудованої або бібліотечної функції, наприклад, prime = get_nth_prime (n), is_a_prime (число), або факторист = list_all_factors (число), не буде дуже творчим.
Оцінка балів - Скажімо, ми визначаємо Score = f ([число знаків у коді]), O ( f (n)) є складністю вашого алгоритму, де n - кількість простих значень, які він знаходить. Так, наприклад, якщо у вас є 300 char код із складністю O (n ^ 2), оцінка становить 300 ^ 2 = 90000 , для 300 символів з O (n * ln (n)) оцінка стає 300 * 5,7 = 1711,13 ( припустимо, щоб усі журнали були натуральними для простоти)
Використовуйте будь-яку існуючу мову програмування, виграйте найнижчий бал
Редагувати: Проблема була змінена з пошуку "перших 1000000 простих" на "перших n простих" через плутанину щодо того, що "n" в O (f (n)) є, n - кількість простих праймів, які ви знайдете (знаходження праймес - проблема тут і тому складність проблеми залежить від кількості знайдених простих чисел)
Примітка: щоб уточнити деякі плутанини щодо складності, якщо 'n' - це кількість знайдених простих чисел, а 'N' - n-й найдений найрізноманітніший, складність з точки зору n є і N не еквівалентні, тобто O (f (n))! = O (f (N)) як, f (N)! = Константа * f (n) і N! = Константа * n, тому що ми знаємо, що n-та проста функція не є лінійною, хоча, оскільки ми знаходили 'n' Складність праймесів повинна бути легко вираженою через «n».
Як вказував Kibbee, ви можете відвідати цей сайт, щоб перевірити свої рішення ( ось старий список документів Google)
Будь ласка, включіть їх у своє рішення -
яку складність має ваша програма (включайте базовий аналіз, якщо не тривіальний)
довжина символу коду
підсумковий розрахунковий бал
Це моє перше запитання CodeGolf, тому, якщо є помилка чи лазівка у вищезазначених правилах, будь ласка, вкажіть їх.
1[\p:i.78498
моя відповідь на це буде 1[\p:i.1000000
. Навіть якщо припустити, що внутрішній простий алгоритм J - це O (n ^ 2), моя оцінка все одно складе лише 196.
n
є кількість простих чи максимальних простих, і всі ігнорують той факт, що додавання чисел у діапазоні 0..n
є O(logn)
, а множення та ділення ще дорожче. Я пропоную вам навести кілька прикладних алгоритмів разом з їх правильною складністю.
O-tilde(k^6)
. Це призводить до того, що кожен, хто претендує на час роботи краще, ніж O-tilde(n ln n (ln(n ln n))^6)
неправильно зрозумів частину проблеми; і до питання про те, як O-tilde
слід розбирати складності в оцінці.