Краматорськ та світ навколо нас > СШ №35

Александра Зиновьевна Рябуха – Почетный гражданин Краматорска

<< < (3/3)

Алексей Удело:
денег не будет, от противного доказано, что задача нерешаема с моими ресурсами, а тревожить других не хочу... :o простите
вот код для однопоточного приложения

--- Код: ---#include <stdio.h>
#include <stdlib.h>
#include <gmp.h>
char string[1000000000];
char strdiv[1000000000];
int i;
mpz_t chislo,sqrtmpz,r,divider;
int main()
{
FILE *filein=fopen("init","wb");
string[0]='1';
string[1]=48;
for(i=2;i<100000000;i++)
{
string[i]=48;

}
string[99999999]='3';
string[100000000]='7';
string[100000001]=0;
fprintf(filein,"%s\n",string);
fclose(filein);
mpz_init_set_str(chislo,string,10);
startx:
mpz_init(sqrtmpz);
mpz_sqrt(sqrtmpz,chislo);
int increment=2,result=0;
FILE *file=fopen("divider","rb");
fscanf(file,"%s",strdiv);
fclose(file);
mpz_init_set_str(divider,strdiv,10);
mpz_init(r);
start:
mpz_add_ui(divider,divider,2);
mpz_sub(r,sqrtmpz,divider);
result=mpz_get_ui(r);
if ((result==0)or(result==1)) {printf("prime\n"); exit(0);};
mpz_fdiv_r_ui(r,divider,5);
result=mpz_get_ui(r);
if (result==0) goto start;
mpz_fdiv_r(r,chislo,divider);
result=mpz_get_ui(r);
if (result==0) {printf("not prime\n");goto next; };
file=fopen("divider","wb");
fprintf(file,"%s",mpz_get_str(NULL,10,divider));
fclose(file);
goto start;
next:
mpz_add_ui(chislo,chislo,2);
mpz_fdiv_r_ui(r,chislo,5);
result=mpz_get_ui(r);
if (result==0) goto next;
filein=fopen("init","wb");
fprintf(filein,"%s\n",mpz_get_str(NULL,10,chislo));
fclose(filein);
mpz_clear(r);
mpz_clear(divider);
mpz_clear(sqrtmpz);
goto startx;
return 0;
}

--- End code ---
время работы на intel core i5 около 1000 лет :(

Алексей Удело:
время уточнил 500-650 лет полный интервал считать в один поток на core i5-7200u ядре...на станции с xeon-ами в 64-потока и выше - вполне решаемая задача! у меня просто таких знакомых нет, есть сервер у одноклассника с 28 ядрами 4 xeon-а, но этого маловато, там же tesla v100, но под неё я кодить не умею и без доступа врядли что-то выйдет путнее...но деньги вполне можно забрать с современными вычислительными ресурсами! странно, что никто раньше не додумался и не сделал claim :?

Навігація

[0] Сторінка Повідомлень

[*] Попередня сторінка

Go to full version