| ||||
#include <stdio.h> //#include <ctime> #define max_step 33333333 #define max_step2 33333380 #define max_step3 33333332 #define n 2147483647 #define d 1234567890 #define nn 1073741823 #define _d 235249369 char npr[46340]; char prime[max_step2]; int main() { #ifdef pperm freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); #endif int i,j,ti; for (i=3;i<46340;i+=2) if (!npr[i]) { j=(i<<1)+i; while (j<46340) { npr[j]=1; j+=i<<1; } if (i>80) { rep: ti=(((j-1)>>1)*_d)&nn; if (ti<max_step) prime[ti]='0'; j+=i<<1; if (j<0) continue; goto rep; } } int a; a=1277200225; for (i=48;i<33333332;) { if (a%41) { a=(a+1556220022)&n; i+=3; } else { a=(a+321652132)&n; i+=2; } prime[i-1]=prime[i-2]='0'; if (a%41) { a=(a+85264668)&n; i+=94; } else { prime[i]='0'; a=(a+1319832558)&n; i+=95; } } for (i=6;i<161;i+=7) prime[i]='0'; a=24405659; for (i=581;i<33333332;) { if (a%17) { a=(a+38223148)&n; i+=294; } else { a=(a+2133666158)&n; i+=287; } for (j=7;j<288;j+=7) prime[i-j]='0'; if (a%17) { a=(a+2105441246)&n; i+=407; } else { prime[i]='0'; a=(a+9998236)&n; i+=414; } } a=23815727; for (i=127;i<33333332;) { if (a%13) { a=(a+38223148)&n; i+=294; } else { a=(a+2133666158)&n; i+=287; } for (j=7;j<288;j+=7) prime[i-j]='0'; if (a%13) { a=(a+2143074462)&n; i+=247; } else { prime[i]='0'; a=(a+47631452)&n; i+=254; } } a=321652133; for (i=2;i<33333332;) { if (a%11) { a=(a+94672972)&n; i+=54; } else { a=(a+1868463850)&n; i+=45; } for (j=9;j<46;j+=9) prime[i-j]='0'; if (a%11) { a=(a+1877872154)&n; i+=5; } else { prime[i]='0'; a=(a+104081276)&n; i+=14; } } a=1556220023; for (i=3;i<33333332;) { if (a%19) { a=(a+1286608528)&n; i+=8; } else { a=(a+643304264)&n; i+=4; } prime[i-4]='0'; if (a%19) { a=(a+156121914)&n; i+=21; } else { prime[i]='0'; a=(a+799426178)&n; i+=25; } } a=643304265; for (i=4;i<33333332;) { if (a%5) { a=(a+321652132)&n; i+=2; } else { a=(a+1234567890)&n; i++; } prime[i-1]='0'; if (a%5) { a=(a+964956396)&n; i+=6; } else { prime[i]='0'; a=(a+52040638)&n; i+=7; } } a=1; prime[0]=prime[33333332]='0'; prime[33333333]=0; for (i=1;i<max_step3;i++) { a=(a+d)&n; if (!prime[i]) prime[i]=(a<46340)?npr[a]?'0':'1':(a%3&&a%7&&a%23&&a%29&&a%31&& a%37&&a%43&&a%47&&a%53&&a%59&&a%61&&a%67&&a%71&&a%73&&a%79)?'1':'0'; } //printf("%d",clock()); printf("%s",prime); return 0; } |
||||
|