powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / "самое большое простое число", которое можно найти на обычной пк.
19 сообщений из 44, страница 2 из 2
"самое большое простое число", которое можно найти на обычной пк.
    #37520939
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AbstractionНу...
Код: plaintext
unsigned long long int limit = - 1 ;


да ладно, реализация больших чисел есть наверно для любого распространенного языка, соответственно все упирается только в память
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37520994
Фотография AHTOH_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а мне почему то кажется памяти сейчас можно предостаточно поставить, а вот время будет немного ограничивающим фактором.
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37521052
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AHTOH_Lа мне почему то кажется памяти сейчас можно предостаточно поставить, а вот время будет немного ограничивающим фактором.
Всё в совокупности. Поверьте, уже пробовал.
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37521378
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k0rvinAbstractionНу...
Код: plaintext
unsigned long long int limit = - 1 ;


да ладно, реализация больших чисел есть наверно для любого распространенного языка, соответственно все упирается только в памятьНу, автор же написалавторхотелось бы находить до 10.000.000.000
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37521433
Фотография AHTOH_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторunsigned long long int limit = -1;

не совсем понимаю что эта конструкция делает, но догадываюсь что автор хочет под переменную выделить много памяти.

не думаю что это правильно, при таком подходе на самом деле ограничением окажется память.
Если написать свою реализацию математики с большими числами(необходимые операции), данного ограничения можно избежать.
Хранить часть данных в файле или в базе данных. Ни какого ограничения, выполнил операцию с цифрой, записал, взял другую и т.д.
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37522623
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AHTOH_Lавторunsigned long long int limit = -1;

не совсем понимаю что эта конструкция делает, но догадываюсь что автор хочет под переменную выделить много памяти.

не думаю что это правильно, при таком подходе на самом деле ограничением окажется память.
Если написать свою реализацию математики с большими числами(необходимые операции), данного ограничения можно избежать.
Хранить часть данных в файле или в базе данных. Ни какого ограничения, выполнил операцию с цифрой, записал, взял другую и т.д.

В реализации собственной математики нет необходимости, достаточно использовать, например, Python - в нем предусмотрена длинная арифметика... или Stackless Python - который обладает почти "бездонным" стэком (для рекурсии)
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37522808
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь не нужна рекурсия.
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37522888
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЗдесь не нужна рекурсия.

Тада сюда - тынц
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37522924
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что я здесь должен читать?
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37522937
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37523313
Фотография mccc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UsmanКому интересно: We currently have 1.4 billion Prime numbers available for you
я думаю, в этом топике, никому не нужно и не хотят, выше их прыгнуть, не так ли??
<хотя, отчасти, оне больны >
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37523462
серегй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
серегйmayton,

#include "stdafx.h"
#include<math.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<tchar.h>

*
* 2009-05-02 Mayton - Добавлен динамич. массив
* Добавлен вывод статистики
* Добавлен замер времени
*/

int _tmain(int argc, _TCHAR* argv[])
{
int time1=time(NULL);


int limit = 1000000000;
int sqr_lim;
//bool is_prime[1001];
bool *is_prime = new bool[limit+1];
int x2, y2;
int i, j;
int n;

// Инициализация решета
sqr_lim = (int)sqrt((long double)limit);
for (i = 0; i <= limit; i++) is_prime[i] = false;
is_prime[2] = true;
is_prime[3] = true;

// Предположительно простые - это целые с нечетным числом
// представлений в данных квадратных формах.
// x2 и y2 - это квадраты i и j (оптимизация).
x2 = 0;
for (i = 1; i <= sqr_lim; i++) {
x2 += 2 * i - 1;
y2 = 0;
for (j = 1; j <= sqr_lim; j++) {
y2 += 2 * j - 1;
n = 4 * x2 + y2;
if ((n <= limit) && (n % 12 == 1 || n % 12 == 5))
is_prime[n] = !is_prime[n];

// n = 3 * x2 + y2;
n -= x2; // Оптимизация
if ((n <= limit) && (n % 12 == 7))
is_prime[n] = !is_prime[n];

// n = 3 * x2 - y2;
n -= 2 * y2; // Оптимизация
if ((i > j) && (n <= limit) && (n % 12 == 11))
is_prime[n] = !is_prime[n];
}
}

// Отсеиваем квадраты простых чисел в интервале [5, sqrt(limit)].
// (основной этап не может их отсеять)
for (i = 5; i <= sqr_lim; i++) {
if (is_prime[i]) {
n = i * i;
for (j = n; j <= limit; j += n) {
is_prime[j] = false;
}
}
}

// Вывод списка простых чисел в консоль.

int primecount=0;
for (i = 2; i <= limit; i++) {
if (is_prime[i]) {
//printf(", %d", i);
primecount++;
}
}

int time2=time(NULL);

printf("\nAtkin 1.0 statistics :\n");
printf(" Interval : [2..%d]\n", limit);
printf(" Primes detected : %d\n", primecount);
printf(" Time elapsed : %d sec\n\n", time2-time1);

delete[] is_prime;
getch();
return 0;
}

вот програмка которая находит самое большое простое число до 1.000.000.000. хотелось бы находить до 10.000.000.000
. короче надо улучщить код или написать другую программу.
программа выводит 53326267
это не простое число ... что делать?
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37523467
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько у тебя было Primes detected :
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37523477
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет такого числа.

В окрестности этого числа (53326267) метод Аткина выдаёт последовательность
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 53326193 
 53326211 
 53326223 
 53326249 
 53326253 
 53326277 
 53326279 
 53326289 
 53326303 
 53326307 
 53326309 
 53326313 
 53326319 
 53326327 

Ищи у себя ошибку.
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37523525
серегй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНет такого числа.

В окрестности этого числа (53326267) метод Аткина выдаёт последовательность
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 53326193 
 53326211 
 53326223 
 53326249 
 53326253 
 53326277 
 53326279 
 53326289 
 53326303 
 53326307 
 53326309 
 53326313 
 53326319 
 53326327 

#include "stdafx.h"
#include<math.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<tchar.h>

int _tmain(int argc, _TCHAR* argv[])
{
int time1=time(NULL);


int limit = 100000000;
int sqr_lim;
//bool is_prime[1001];
bool *is_prime = new bool[limit+1];
int x2, y2;
int i, j;
int n;

// Инициализация решета
sqr_lim = (int)sqrt((long double)limit);
for (i = 0; i <= limit; i++) is_prime[i] = false;
is_prime[2] = true;
is_prime[3] = true;

// Предположительно простые - это целые с нечетным числом
// представлений в данных квадратных формах.
// x2 и y2 - это квадраты i и j (оптимизация).
x2 = 0;
for (i = 1; i <= sqr_lim; i++) {
x2 += 2 * i - 1;
y2 = 0;
for (j = 1; j <= sqr_lim; j++) {
y2 += 2 * j - 1;
n = 4 * x2 + y2;
if ((n <= limit) && (n % 12 == 1 || n % 12 == 5))
is_prime[n] = !is_prime[n];

// n = 3 * x2 + y2;
n -= x2; // Оптимизация
if ((n <= limit) && (n % 12 == 7))
is_prime[n] = !is_prime[n];

// n = 3 * x2 - y2;
n -= 2 * y2; // Оптимизация
if ((i > j) && (n <= limit) && (n % 12 == 11))
is_prime[n] = !is_prime[n];
}
}

// Отсеиваем квадраты простых чисел в интервале [5, sqrt(limit)].
// (основной этап не может их отсеять)
for (i = 5; i <= sqr_lim; i++) {
if (is_prime[i]) {
n = i * i;
for (j = n; j <= limit; j += n) {
is_prime[j] = false;
}
}
}

// Вывод списка простых чисел в консоль.

int primecount=0;
for (i = 2; i <= limit; i++) {
if (is_prime[i]) {
//printf(", %d", i);
primecount++;
}
}

int time2=time(NULL);

printf("\nAtkin 1.0 statistics :\n");
printf(" Interval : [2..%d]\n", limit);
printf(" Primes detected : %d\n", primecount);
printf(" Time elapsed : %d sec\n\n", time2-time1);

delete[] is_prime;
getch();
return 0;
}

Ищи у себя ошибку. вот программа. но она выдает 53326267, но это не простое число=(
как ты вывел эти числа? можешь написать эту программу?
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37523540
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Они (как ни странно) лежат в массиве is_prime.
Не обижайся но у меня нет интереса тебе помогать.
Ты объективно очень слабый кодер в С++ и тебе
еще рано писать (и даже использовать готовые
исходники). Подучи сначала основы С++

Всего хорошего.
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37523547
серегй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОни (как ни странно) лежат в массиве is_prime.
Не обижайся но у меня нет интереса тебе помогать.
Ты объективно очень слабый кодер в С++ и тебе
еще рано писать (и даже использовать готовые
исходники). Подучи сначала основы С++

Всего хорошего.

так это твоя программа и у тебя тоже это число вывелось...
мы только начали с++ изучать так что это не моя вина что я плохо разбиаюсь в функциях и т д.
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37523550
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
"самое большое простое число", которое можно найти на обычной пк.
    #37523562
серегй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%88%D0%B5%D1%82%D0%BE_%D0%90%D1%82%D0%BA%D0%B8%D0%BD%D0%B0
решето аткина... у меня работает только до миллиона...
как увеличить интервал?
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / "самое большое простое число", которое можно найти на обычной пк.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]