杭电ACM1216——Assistance Required~~筛选法的应用

这题,一开始以为是第几个素数,后来打表之后查了一下,发现不是。

再看看题目,才知道是简单的筛选法。

每一个筛选留下来的数n,n往后的所以数,能被n整除的除去,不能的留下,筛选出3000个数出来就OK了。

下面的是AC的代码:

#include <iostream>
#include <cstring>
using namespace std;

int num[50000];
int a[3005];

int main()
{
	memset(num, 0, sizeof(num));
	int c = 0, k;
	for(int i = 2; i < 50000; i++)
	{
		if(!num[i])
		{
			a[c++] = i; k = 0;
			for(int j = i + 1; j < 50000; j++)
			{
				if(!num[j])
				{
					k++;
					if(k == i)
					{
						num[j] = 1;
						k = 0;
					}
				}
			}
			if(c >= 3000)
				break;
		}
	}
	int n;
	while(cin >> n, n)
		cout << a[n - 1] << endl;
	return 0;
}
时间: 2024-08-10 17:20:52

杭电ACM1216——Assistance Required~~筛选法的应用的相关文章

杭电ACM分类

杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY

【转】对于杭电OJ题目的分类

[好像博客园不能直接转载,所以我复制过来了..] 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDI

循环多少次? 【杭电--HDOJ-1799】 附题

/* 循环多少次? Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2839    Accepted Submission(s): 1028 Problem Description 我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分.例如, 如果代码中出现 for(i=1;i<=n;i++) OP ; 那么做了n次O

杭电 2200 Eddy&#39;s AC难题 (排列组合 公式)用double来表示64位

Eddy's AC难题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3710    Accepted Submission(s): 1741 Problem Description Eddy是个ACMer,他不仅喜欢做ACM题,而且对于Ranklist中每个人的ac数量也有一定的研究,他在无聊时经常在纸上把Ranklist上每个人的

不可摸数(杭电1999)

/*不可摸数 Problem Description s(n)是正整数n的真因子之和,即小于n且整除n的因子和.例如s(12)=1+2+3+4+6=16.如果任何 数m,s(m)都不等于n,则称n为不可摸数. Input 包含多组数据,首先输入T,表示有T组数据.每组数据1行给出n(2<=n<=1000)是整数. Output 如果n是不可摸数,输出yes,否则输出no Sample Input 3 2 5 8 Sample Output yes yes no */ /*用打表法将 n的真因子

杭电2066--一个人的旅行(Floyd)

一个人的旅行 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 24029    Accepted Submission(s): 8358 Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富

acm入门 杭电1001题 有关溢出的考虑

最近在尝试做acm试题,刚刚是1001题就把我困住了,这是题目: Problem Description In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n. Input The input will consist of a series of integers n, one integer per line Output For each case, output SUM(n) in one line

杭电 1230 火星A+B

火星A+B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 10279    Accepted Submission(s): 3402 Problem Description 读入两个不超过25位的火星正整数A和B,计算A+B.需要注意的是:在火星上,整数不是单一进制的,第n位的进制就是第n个素数.例如:地球上的10进制数2,在火星上记

杭电 2710(水题)

Max Factor <span size="+0"><strong><span style="font-family:Arial;font-size:12px;color:green;FONT-WEIGHT: bold">Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s):