标签:数论
bool ISprime(int n) { int i,isqrt=(int)sqrt(n); if(n<=2) return (n==2); else if(n%2==0) return false; else for(i=3;i<=isqrt;i+=2){ if(n%i==0){ return false; } } return true; } /* #include<cmath> 是素数返回true 不是返回false */
虽然以前也经常用,但是这次这道题,貌似把这个模版稍微一改就会超时。
好奇怪,把int改为 long long 超时,
不写isqrt=(int)sqrt(n)超时,循环体里面直接写sqrt(n),或者(int)sqrt(n)超时。
好奇怪,求高人指点一二。
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:数论
原文地址:http://blog.csdn.net/qq_27803491/article/details/47692919