求n以内的素数(1-1)

求n以内的素数(1-1)

时间: 0ms        内存:128M

描述:

输入一个整数n,求n以内的素数,每十个一行,采取尽可能优的算法。

输入:

n

输出:

n以内的素数

示例输入:

100

示例输出:

    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

提示:

参考答案(内存最优[0]):

#include <stdio.h>
int primes(int n,int m);    /*求n,m之间素数个数*/
int is_prime(int n);    /*判断是否为素数*/
int main()
{
    int n;
    scanf("%d",&n);
    int count=0;
    for(int i=2; i<=n; i++)
    {
        if(is_prime(i)==1)
        {
            printf("%5d",i);
            count++;
            if(count==10)
            {
                count=0;
                printf("\n");
            }
        }
    }
    return 0;
}
int is_prime(int n)
{
    for(int i=2; i*i<=n; i++)
        if(n%i==0)
            return 0;
    return 1;
}

参考答案(时间最优[0]):

#include <stdio.h>

int panduan(int n)
{
    int i;
    for( i=2; i*i<=n; i++)
        if(n%i==0)return 0;
    return 1;
}
int main()
{
    int n,s,i;
    while(~scanf("%d",&n))
    {
        s=0;
        for(i=2; i<=n; i++)
            if(panduan(i))
            {
                s++;
                printf("   %2d",i);
                if(s%10==0)printf("\n");
            }
        printf("\n");
    }
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注