打印1-100之间素数及其个数

函数接口定义:
int prime(int x)
其中x是用户传入的参数,如果x是素数则函数返回1,否则函数返回0。

裁判测试程序样例:
#include <stdio.h>
int prime(int x);
int main()
{
int i,k=0;
for(i=1;i<=100;i++)
if(prime(i)==1)
{printf("%4d",i);
k++;
if(k%10==0) printf("\n");
}
printf("\n%4d\n",k);
return 0;
}
/* 请在这里填写答案 */

输出样例:
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97
25

代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB


int prime(int n)
{
    if (n == 2)
        return 1;
    if (n % 2 == 0)
        return 0;
    for (int i = 3; i <= sqrt(n); i += 2)//跳过偶数
    {
        if (n%i == 0)
            return 0;
    }
    return 1;
}

供参考:

#include <stdio.h>
int prime(int x);
int main()
{
    int i,k=0;
    for(i=1;i<=100;i++)
       if(prime(i)==1)
       {
          printf("%4d",i);
          k++;
          if(k%10==0) printf("\n");
       }
    printf("\n%4d\n",k);
    return 0;
}
/* 请在这里填写答案 */
int prime(int x)
{
    int i;
    if (x <= 3 ) return x > 1;
    for (i = 2; i * i <= x; i++)
        if (x % i == 0) return 0;
    return 1;
}

mark