//素數判定(有問題)
/*n=1或n太大時請勿呼叫
n=1時錯誤判斷爲素數
n過大時i*i可能會溢位*/
int isprime(int n)
{
for(int i=2;i<n;i++)
{
if(n%i==0)
{
return 0;
}
return 1;
}
}
/*注意這裏使用了兩個小技巧 :
1.只判斷不超過sqrt(x)的整數i
2.及時退出 */
int isprime(int n)
{
if(n<=1)
{
return 0;
}
int m=floor(sqrt(n)+0.5);
for(int i=2;i<=m;i++)
{
if(n%i==0)
{
return0;
}
}
return 1;
}
//特判n=1情況
//變數m的使用避免了重複計算,通過四捨五入避免了浮點誤差