【C】质数判断传统方法与高效率算法时间比对

来源:互联网 发布:北京洪浪网络诈骗案 编辑:程序博客网 时间:2024/05/16 17:31
#include <stdio.h>#include <math.h>#include <time.h>main(){int do_1(int num);int do_2(int num);int n=100000,i,j,sum=0,t0,t1,t;printf("Please input the max number:");scanf("%d",&n);//Method_1printf("---------------------------------------------\nNow running Method_1:\n");t0=clock();for(i=2;i<=n;i++){if(do_1(i)){//printf("%d ",i);sum++;}}t1=clock();t=t1-t0;printf("100%%\nThe total is %d numbers.\nMethod_1 spent %d ms\n",sum,t);//Method_2printf("---------------------------------------------\nNow running Method_2:\n");sum=0;t0=clock();for(j=2;j<=n;j++){if(do_2(j)){//printf("%d ",j);sum++;}}t1=clock();t=t1-t0;printf("100%%\nThe total is %d numbers.\nMethod_2 spent %d ms\n",sum,t);getchar();}int do_1(int num){int i,s;s=sqrt(num+1);for (i=2;i<=s;i++)if(num%i==0)return 0;return 1;}int do_2(int num){int i,s;if(num==2 || num==3){return 1;}else if((num%6)!=1 && (num%6)!=5){return 0;}elses=sqrt(num+1);for(i=5;i<=s;i+=6)if(num%i==0 || num%(i+2)==0)return 0;return 1;}


0 0
原创粉丝点击