计算素数

高效的方法(1000以内)

int isPrime(int n)
{
int i;
if (n % 2 == 0) return (n == 2);
if (n % 3 == 0) return (n == 3);
if (n % 5 == 0) return (n == 5);
for (i = 7; i*i <= n; i += 2)
if (n % i == 0) return 0;
return 1;
}

测试:(可以先生成1~10000,然后逐个判断,计时)

/* isPrime */
# include <stdio.h>

int isPrime(int n)
{
int i;
if (n % 2 == 0) return (n == 2);
if (n % 3 == 0) return (n == 3);
if (n % 5 == 0) return (n == 5);
for (i = 7; i*i <= n; i += 2)
if (n % i == 0) return 0;
return 1;
}

int main()
{
int n;

while (~scanf("%d", &n))
printf("%d\n", isPrime(n));

return 0;
}




原文地址:https://www.cnblogs.com/JMDWQ/p/2374891.html