|
|
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
AbstractionНу... Код: plaintext да ладно, реализация больших чисел есть наверно для любого распространенного языка, соответственно все упирается только в память ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2011, 22:52 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
а мне почему то кажется памяти сейчас можно предостаточно поставить, а вот время будет немного ограничивающим фактором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2011, 23:36 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
AHTOH_Lа мне почему то кажется памяти сейчас можно предостаточно поставить, а вот время будет немного ограничивающим фактором. Всё в совокупности. Поверьте, уже пробовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2011, 00:41 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
k0rvinAbstractionНу... Код: plaintext да ладно, реализация больших чисел есть наверно для любого распространенного языка, соответственно все упирается только в памятьНу, автор же написалавторхотелось бы находить до 10.000.000.000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2011, 10:08 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
авторunsigned long long int limit = -1; не совсем понимаю что эта конструкция делает, но догадываюсь что автор хочет под переменную выделить много памяти. не думаю что это правильно, при таком подходе на самом деле ограничением окажется память. Если написать свою реализацию математики с большими числами(необходимые операции), данного ограничения можно избежать. Хранить часть данных в файле или в базе данных. Ни какого ограничения, выполнил операцию с цифрой, записал, взял другую и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2011, 10:34 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
AHTOH_Lавторunsigned long long int limit = -1; не совсем понимаю что эта конструкция делает, но догадываюсь что автор хочет под переменную выделить много памяти. не думаю что это правильно, при таком подходе на самом деле ограничением окажется память. Если написать свою реализацию математики с большими числами(необходимые операции), данного ограничения можно избежать. Хранить часть данных в файле или в базе данных. Ни какого ограничения, выполнил операцию с цифрой, записал, взял другую и т.д. В реализации собственной математики нет необходимости, достаточно использовать, например, Python - в нем предусмотрена длинная арифметика... или Stackless Python - который обладает почти "бездонным" стэком (для рекурсии) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2011, 16:53 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
Здесь не нужна рекурсия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2011, 17:59 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2011, 18:35 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
А что я здесь должен читать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2011, 18:58 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
Кому интересно: We currently have 1.4 billion Prime numbers available for you ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2011, 19:06 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
UsmanКому интересно: We currently have 1.4 billion Prime numbers available for you я думаю, в этом топике, никому не нужно и не хотят, выше их прыгнуть, не так ли?? <хотя, отчасти, оне больны > ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2011, 01:35 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
серегй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 это не простое число ... что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2011, 12:39 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
Сколько у тебя было Primes detected : ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2011, 12:49 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
Нет такого числа. В окрестности этого числа (53326267) метод Аткина выдаёт последовательность Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Ищи у себя ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2011, 13:10 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
maytonНет такого числа. В окрестности этого числа (53326267) метод Аткина выдаёт последовательность Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. #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, но это не простое число=( как ты вывел эти числа? можешь написать эту программу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2011, 14:25 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
Они (как ни странно) лежат в массиве is_prime. Не обижайся но у меня нет интереса тебе помогать. Ты объективно очень слабый кодер в С++ и тебе еще рано писать (и даже использовать готовые исходники). Подучи сначала основы С++ Всего хорошего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2011, 14:39 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
maytonОни (как ни странно) лежат в массиве is_prime. Не обижайся но у меня нет интереса тебе помогать. Ты объективно очень слабый кодер в С++ и тебе еще рано писать (и даже использовать готовые исходники). Подучи сначала основы С++ Всего хорошего. так это твоя программа и у тебя тоже это число вывелось... мы только начали с++ изучать так что это не моя вина что я плохо разбиаюсь в функциях и т д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2011, 14:46 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2011, 14:50 |
|
||
|
"самое большое простое число", которое можно найти на обычной пк.
|
|||
|---|---|---|---|
|
#18+
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 решето аткина... у меня работает только до миллиона... как увеличить интервал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2011, 15:10 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37522808&tid=1342627]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 436ms |

| 0 / 0 |
