Author: Dann Corbit
Date: 10:15:04 05/26/05
Go up one level in this thread
On May 26, 2005 at 12:02:37, Vincent Diepeveen wrote:
[snip]
>Hello, i can calculate prime numbers up to 10 million digits at my pc nearly,
>though not within 5 minutes.
Less than a second, I imagine.
>A prime number of 1051 digits is really peanuts to calculate within seconds.
Do you mean to prove prime with APR-CL?
>I'll have to refer to some other software mine there.
All primes to 100 million takes about ten seconds on a single CPU machine.
E:\tmp\ioccc>type p.c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#define TEST(f,x)(*(f+(x)/16)&(1<<(((x)%16L)/2)))
#define SET(f,x)(*(f+(x)/16)|=1<<(((x)%16L)/2))
void check(int count_converted,unsigned long value,void*feld){if(
count_converted!=1){(void)puts("The scanf() function had an error conve\
rting input data.");free(feld);exit(EXIT_FAILURE);}if(value==0){(void)
puts("Value out of range. Assuming exit is desired.");free(feld);exit(
EXIT_SUCCESS);}}int main(int argc,char*argv[]){unsigned char*feld=NULL,*
zzz=NULL;unsigned long teste=1,max,mom,hits=1,count,alloc,s=0,e=1;time_t
begin;if(argc>1)max=(unsigned long)atof(argv[1])+10000;else max=
14010000L;zzz=feld=malloc((size_t)(alloc=(((max-=10000L)>>4)+1L)));if(
feld){memset(zzz,0,(size_t)alloc);printf("Searching prime numbers to : \
%lu\n",max);begin=time(NULL);while((teste+=2)<max)if(!TEST(feld,teste)){
if(++hits%100000L==0){printf(" %lu. prime numbers\n",hits);(void)fflush(
stdout);}for(mom=3L*teste;mom<max;mom+=teste<<1)SET(feld,mom);}printf("\
%lu prime numbers found in %lu secs.\n\nShow prime numbers",hits,(
unsigned long)(time(NULL)-begin));while(s<e){int cnt;printf("\n\nStart \
of Area : ");(void)fflush(stdout);cnt=scanf("%lu",&s);check(cnt,s,feld);
printf("End of Area : ");(void)fflush(stdout);cnt=scanf("%lu",&e);check(
cnt,s,feld);if(s<=2&&e>=2)printf("%lu\t",2L);count=s-2;if(s%2==0)count++
;while((count+=2)<e)if(!TEST(feld,count)&&count!=1)printf("%lu\t",count)
;}free(feld);}else{(void)puts("Memory allocation failure.");exit(
EXIT_FAILURE);}return 0;}
E:\tmp\ioccc>p 100000000
Searching prime numbers to : 100000000
100000. prime numbers
200000. prime numbers
300000. prime numbers
400000. prime numbers
500000. prime numbers
600000. prime numbers
700000. prime numbers
800000. prime numbers
900000. prime numbers
1000000. prime numbers
1100000. prime numbers
1200000. prime numbers
1300000. prime numbers
1400000. prime numbers
1500000. prime numbers
1600000. prime numbers
1700000. prime numbers
1800000. prime numbers
1900000. prime numbers
2000000. prime numbers
2100000. prime numbers
2200000. prime numbers
2300000. prime numbers
2400000. prime numbers
2500000. prime numbers
2600000. prime numbers
2700000. prime numbers
2800000. prime numbers
2900000. prime numbers
3000000. prime numbers
3100000. prime numbers
3200000. prime numbers
3300000. prime numbers
3400000. prime numbers
3500000. prime numbers
3600000. prime numbers
3700000. prime numbers
3800000. prime numbers
3900000. prime numbers
4000000. prime numbers
4100000. prime numbers
4200000. prime numbers
4300000. prime numbers
4400000. prime numbers
4500000. prime numbers
4600000. prime numbers
4700000. prime numbers
4800000. prime numbers
4900000. prime numbers
5000000. prime numbers
5100000. prime numbers
5200000. prime numbers
5300000. prime numbers
5400000. prime numbers
5500000. prime numbers
5600000. prime numbers
5700000. prime numbers
5761455 prime numbers found in 10 secs.
Show prime numbers
Start of Area : 1234567
End of Area : 1234789
1234577 1234603 1234613 1234627 1234657 1234687 1234703 1234721 1234747 1234757
1234759 1234769 1234777 1234787
Start of Area : -1
End of Area : -1
This page took 0.03 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.