一个很简单的数据结构题目

来源:百度知道 编辑:UC知道 时间:2024/05/26 20:35:46
设计一个程序,输出所有小于等于n(n为一个大于2的正整数)的素数。要求:(1)每行输出10个素数;(2)尽可能采用较优的算法。

#include<stdio.h>
main()
{
int i,j,n,k=0;
scanf("%d",&n);
for(i=2;i<=n;i++)
{
for(j=2;j<i;j++)
if(i%j==0) break;
if(i==j)
{ printf("%5d",i);k++;
if(k%10==0) printf("\n");
}
}

}

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>

#define HCH_N 1000

int main()
{
int i, j, num, sqrt_num, temp;
int flaglist[HCH_N];

memset(flaglist, 1, sizeof(flaglist));
printf("please input n\n");
scanf("%d", &num);
sqrt_num = sqrt(num);

for(i = 2; i <= sqrt_num; i++)
{
if(flaglist[i])
{
temp = num / i;

for(j = 2; j <= temp; j++)
{
flaglist[j * i] = 0;
}
}
}
flaglist[2] = 0;