该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我写了一段求素数的代码,已经尽我的能力给代码做了最达优化,但是运行速度我还是不满意,也许是我CPU不给力.所以我想了解一下这代码在不同的CPU下会有怎样的表现.如果各位有空,帮忙测试个运行时间吧,然后把结果和你的电脑的CPU与内存一起发上来,我统计一下.
代码如下:
/*********************************************************/
#include
#include
#include
#include
int main ()
{
int shuru,sq,*list,i,j,len;
clock_t start,end;
time_t s1,s2;
scanf("%d",&shuru);
if(shuru<=0) {puts("shuru error!");exit(1);}
list=(int*)calloc(shuru+1,sizeof(4));
if(list==NULL) {puts("list creat error!");exit(1);}
sq=sqrt(shuru);
len=shuru;
s1=time(NULL);
printf("程序开始时间=%lds",s1);
start=clock();
for(i=2;i
{
if(list[i]==1) continue;
for(j=i+i;j
}
i=1;
while(i
{
if(*(list+i)!=0) len--;
i++;
}
s2=time(NULL);
printf("\n程序结束时间=%lds",s2);
printf("\n程序实际运行时间=%ld seconds!",s2-s1);
end=clock();
printf("\nCPU时间测量=%d ms",(end-start));
printf("\n%d以内共有质数%d个!\n",shuru,len-2);
free(list);
system("pause");
return 0;
}
/******************************************************************/
我的机子是AMD Athlon(tm) 64 x2 dualcore processor 4200+ 2.2GHz,3G内存.
计算4亿以内有多少个素数的运行结果如下:
400000000
程序开始时间=1292901066s
程序结束时间=1292901105s
程序实际运行时间=39 seconds!
CPU时间测量=39469 ms
400000000以内共有质数21336326个!
请按任意键继续. . .