1836 - 课后习题7.1

用筛法求之N内的素数。

题目输入

N

题目输出

0~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

提示

数组大小动态定义?函数?

C语言解答

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

C++解答

#include<bits/stdc++.h>
using namespace std;
long long n,a[1000000];
int main()
{
	cin>>n;
	for(int i=2;i*i<=n;i++)
	{
		if(a[i]==0)
		{
			for(int j=i*2;j<=n;j+=i)
			    a[j]=1;
		}
	}
	for(int i=2;i<=n;i++)
	{
		if(a[i]==0)
		    cout<<i<<"\n";
	}
		
    return 0;
}

提示

数组大小动态定义?函数?

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题