高效的方法(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;
}