判断一个数是否为素数的函数

    技术2025-07-21  18

    int ss(int n) { int i; double j=sqrt(n); if(n<2) { printf("input ERROR,n must >1/n"); exit(1); } for (i=2;i<=j;i++) if (n%i==0) return 0; return 1; } 

     

    重点在于 j=sqrt(n)这句,初学者一般用j=n,懂一点用j=n/2

     

    关于素数的判定,还有很多方法,常用的是筛选法

     

    紧凑的程序不一定是好程序,最关键的要是有效率。

     

    昨天看到一题,计算1-2+3-4+5-6......+n的值,n的值很大 ,意思是如果简单地执行一个个加减的话,耗时会长,这样的函数就很好:

    long fn(long n) { if(n<=0) { printf("error: n must > 0); exit(1); } if(0==n%2) return (n/2)*(-1); else return (n/2)*(-1)+n; }  

    效率没话说。

    最新回复(0)