程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 杭電ACM1216——Assistance Required~~篩選法的應用

杭電ACM1216——Assistance Required~~篩選法的應用

編輯:C++入門知識

杭電ACM1216——Assistance Required~~篩選法的應用


這題,一開始以為是第幾個素數,後來打表之後查了一下,發現不是。

再看看題目,才知道是簡單的篩選法。

每一個篩選留下來的數n,n往後的所以數,能被n整除的除去,不能的留下,篩選出3000個數出來就OK了。

下面的是AC的代碼:

 

#include 
#include 
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;
}


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved