C/C++经典程序训练7---求某个范围内的所有素数

C/C++经典程序训练7---求某个范围内的所有素数

时间: 1ms        内存:64M

描述:

求小于n的所有素数,按照每行10个显示出来。

输入:

输入整数n(n<10000)。

输出:

每行10个依次输出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

提示:

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

#include<stdio.h> 
#define MAXNUM 1000 
  
int main() 
{ 
    int output[MAXNUM],num=0,n,i,j,k; 
    scanf("%d",&n); 
    for(i=2;i<=n;i++) 
    { 
        for(j=2;j<=i-1;j++) 
        { 
        if(i%j==0) 
            break; 
    } 
    if(j==i) 
    { 
        output[num++]=i; 
    } 
} 
  
for(i=0,k=0;i<num;i++) 
{ 
	{
		if(k==0)
			printf("%d",output[i]);
		if(k>=1)
		printf(" %d",output[i]);
		k++;
	}
	if(k==10)
	{
		printf("\n");
		k=0;
	}

} 
printf("\n");
return 0; 
}

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


#include"stdio.h"
#include"math.h"
int main()
{
    int a,b,c,e=0,n;
    scanf("%d",&n);
    for(a=2; a<=n; a+=1)
    {
        c=sqrt(a);
        for(b=2; b<=c; b++)
        {
            if(a%b==0)
                break;
        }
        if(b==c+1)
        {
            if(e%10==0)
                printf("%d",a);
            else
                printf(" %d",a);
            e++;
            if(e%10==0)
                printf("\n");
        }
    }
    return 0;
}

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

点赞

发表评论

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