реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Простые числа, где можно найти ряд
ig_z
сообщение Oct 2 2006, 12:21
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551



Подскажите, где можно найти ряд простых чисел. От 1000 и дальше. Поиском найти не смог.
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Oct 2 2006, 13:21
Сообщение #2


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(ig_z @ Oct 2 2006, 15:21) *
Подскажите, где можно найти ряд простых чисел. От 1000 и дальше. Поиском найти не смог.

biggrin.gif Вы бы еще формулу попросили...

Код
//////////////////////////////////////////////////////////////////////////////
//
//  Finding prime numbers
//  (c) Johna Smith, 1996
//
//  Method description:
//   We take a number and try to divide it. If we can divide it
//   without remainder - this is not prime number.
//   We can take into account only odd numbers, because we can
//   divide all even number by 2. Also we can store all prime
//   numbers that are already found in an array and try to divide
//   all new numbers only by numbers from this array.
//   If we want to find all prime numbers less than N the size of
//   the array should be sqrt(N)/2
//
//////////////////////////////////////////////////////////////////////////////

#include <stdio.h>

#define N   160  // so we can find all prime numbers that are less than 100000
#define M   25   // check all numbers less than 250

int Simple[N];
int k=0;
enum {yes,no} simple;

void main(void)
{
// it's easy: 2 and 3 are prime
if (M>=2) printf("2\n");                    // 2 is simple 'cause we can divide it only by itself and 1
Simple[k++]=2;
if (M>=3) printf("3\n");
Simple[k++]=3;

// but what we can say about other numbers:
for(int i=5; i<=M; i+=2)
{
   simple=yes;
   for(int j=0; j<k; j++)
   {
     if (Simple[j]*Simple[j]>i) break;     // other Simple[j] is too big for i
     if ((i%Simple[j])==0) simple=no;    // there's no remainder - not prime
   }
   if (simple==yes)
   {
     printf("%d\n",i);
     Simple[k++]=i;
   }
}
}

Это я копирнул с "винграда", раздел "алгоритмы".

P.S.: Кстати, о формуле простых чисел ( biggrin.gif laugh.gif ), вот человек получил кое какие аппроксимации ряда (я сам не проверял, т.к. довольно холоден к фундаментальной математике). Но если надумаете, как их применить в прикладных задачах - Вам и карты в руки... wink.gif


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
ig_z
сообщение Oct 2 2006, 13:53
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551



Цитата(DRUID3 @ Oct 2 2006, 16:21) *
Цитата(ig_z @ Oct 2 2006, 15:21) *

Подскажите, где можно найти ряд простых чисел. От 1000 и дальше. Поиском найти не смог.

biggrin.gif Вы бы еще формулу попросили...



Спасибо за ответ. Я еще более холоден к данной теме. Просто просьба со стороны.

Что касается формульного расчета, то действительно гарантировано простое число на выходе. Но, если я не ошибаюсь, нет гарантии, что будет рассчитан весь ряд без пропусков. Вроде я слышал, что раньше публиковали полные ряды, получаемые тупым перебором. Вот такое бы найти.
Go to the top of the page
 
+Quote Post
Andrew10
сообщение Oct 2 2006, 14:35
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 228
Регистрация: 22-10-05
Из: Саратов
Пользователь №: 9 960



В Mathematica-5.2 функция Prime[n] дает n-ое простое число. Расчет чисел с номерами от 1000 до 10000 на Pentium, 1.7 ГГц занял 0.015 секунды (без вывода на экран или в файл)
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Oct 2 2006, 15:06
Сообщение #5


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(Andrew10 @ Oct 2 2006, 17:35) *
В Mathematica-5.2 функция Prime[n] дает n-ое простое число. Расчет чисел с номерами от 1000 до 10000 на Pentium, 1.7 ГГц занял 0.015 секунды (без вывода на экран или в файл)

biggrin.gif дык кто Вам мешает копирнуть ряд сюда и помочь человеку?


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Oct 2 2006, 15:11
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



В матлабе:
P=primes(n);
Здесь n - верхний предел простого числа. А можно и так:
P=primes(n)
В последнем случае n желательно взять больше 10 000 000.

И будет счастье! biggrin.gif


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
Andrew10
сообщение Oct 2 2006, 18:17
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 228
Регистрация: 22-10-05
Из: Саратов
Пользователь №: 9 960



Цитата
biggrin.gif дык кто Вам мешает копирнуть ряд сюда и помочь человеку?


Лови!

В файле в две колонки номер простого числа и само число. Первым простым числом считается 2.
Первые 100000 чисел.Прикрепленный файл  primes.zip ( 286.71 килобайт ) Кол-во скачиваний: 220
Go to the top of the page
 
+Quote Post
Krys
сообщение Oct 27 2006, 08:08
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Извиняюсь, если офтопик, но ещё в школе на олимпиаде по математике у нас была такая задачка: какова сумма всех простых чисел до 1000? Притом время было ограниченное. Я так до сих пор и не понял, в чём тут был подвох (простота)? Я должен был перебирать все числа до 1000? Потом тупо их просуммировать? Этих чисел судя по выданной тут таблице сотня штук - замучаешься вычислять...
Кто знает отгадку?
Go to the top of the page
 
+Quote Post
exSSerge
сообщение Oct 27 2006, 18:44
Сообщение #9


Частый гость
**

Группа: Новичок
Сообщений: 136
Регистрация: 18-08-06
Из: Novosibirsk
Пользователь №: 19 655



Цитата(Krys @ Oct 27 2006, 15:08) *
Извиняюсь, если офтопик, но ещё в школе на олимпиаде по математике у нас была такая задачка: какова сумма всех простых чисел до 1000? Притом время было ограниченное. Я так до сих пор и не понял, в чём тут был подвох (простота)? Я должен был перебирать все числа до 1000? Потом тупо их просуммировать? Этих чисел судя по выданной тут таблице сотня штук - замучаешься вычислять...
Кто знает отгадку?

Дык, сначала все просуммировать, а потом те, которые не простые вычесть. Причём пройтись (решетом Эратосфена) придётся только по простым числам, меньше корня из 1000, т.е. до 31.
Go to the top of the page
 
+Quote Post
net
сообщение Oct 27 2006, 19:11
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 858
Регистрация: 9-08-04
Пользователь №: 473



да ладно вам smile.gif
в известной книге приведена очень простая формула простых чисел
2*n+1 и это известно всем
для примера по формуле 1,3,5,7, правда 9 досадное недорузумение - зато 11 и 13 последовательно потдверждают эту формулу - ну а дальше дело за мат индукцией smile.gif
Go to the top of the page
 
+Quote Post
Krys
сообщение Oct 28 2006, 07:19
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



exSSerge, не очень Вас понял. Нельзя ли прямо на примере показать?
Ещё раз хочу сказать, что задача должна быть решена в ограниченное время школьником, а не знатаком высшей математики и не гением, могущим безошибочно сложить под сотню чисел :))
Go to the top of the page
 
+Quote Post
pdk
сообщение Oct 31 2006, 07:55
Сообщение #12


Частый гость
**

Группа: Validating
Сообщений: 107
Регистрация: 25-05-05
Из: Moscow
Пользователь №: 5 377



всегото одна строчка в Maple:
writedata("c:\\prime.txt",[[i,ithprime(i)]$i=1..10000]);
Цитата
1 2
2 3
3 5
.......
.......


Сообщение отредактировал pdk - Oct 31 2006, 07:57
Go to the top of the page
 
+Quote Post
BEZU
сообщение Oct 31 2006, 09:43
Сообщение #13





Группа: Новичок
Сообщений: 2
Регистрация: 11-05-06
Пользователь №: 17 003



Цитата(net @ Oct 27 2006, 23:11) *
2*n+1

Это формула нечетных чисел. И без досадных недоразумений =)
Go to the top of the page
 
+Quote Post
net
сообщение Oct 31 2006, 16:43
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 858
Регистрация: 9-08-04
Пользователь №: 473



Цитата(BEZU @ Oct 31 2006, 12:43) *
Цитата(net @ Oct 27 2006, 23:11) *

2*n+1

Это формула нечетных чисел. И без досадных недоразумений =)


эх молодеж и подростки - не читали вы книг ФИЗИКИ ШУТЯТ и ФИЗИКИ ПРОДОЛЖАЮТ ШУТИТЬ
очень занимательные книги - если найдете то почитайте smile.gif
Go to the top of the page
 
+Quote Post
BEZU
сообщение Oct 31 2006, 23:03
Сообщение #15





Группа: Новичок
Сообщений: 2
Регистрация: 11-05-06
Пользователь №: 17 003



Не читали...
Каюсь! судя по всему, сглупил... =)
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 21:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.0152 секунд с 7
ELECTRONIX ©2004-2016