POJ 3006 Dirichlet's Theorem on Arithmetic Progressions 快筛质数

简介:

题目大意:给出一个等差数列,问这个等差数列的第n个素数是什么。


思路:这题主要考怎样筛素数,线性筛。详见代码。


CODE:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define MAX 1000010
using namespace std;

int prime[MAX],primes;
bool notp[MAX];

int a,d,n;

void Pretreatment()
{
	notp[1] = true;
	for(int i = 2; i < MAX; ++i) {
		if(!notp[i])
			prime[++primes] = i;
		for(int j = 1; j <= primes && i * prime[j] < MAX; ++j) {
			notp[i * prime[j]] = true;
			if(i * prime[j] == 0)
				break;
		}
	}
}

int main()
{
	Pretreatment();
	while(scanf("%d%d%d",&a,&d,&n),a + d + n) {
		for(int now = a;; now += d) {
			if(!notp[now])	--n;
			if(!n) {
				printf("%d\n",now);
				break;
			}
		}
	}
	return 0;
}





本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5371137.html,如需转载请自行联系原作者

相关文章
|
25天前
|
机器学习/深度学习 存储 人工智能
每日练习之矩阵乘法——斐波那契公约数
每日练习之矩阵乘法——斐波那契公约数
14 0
|
算法
质数筛法:朴素素数筛,埃氏筛,欧式筛
质数筛法:朴素素数筛,埃氏筛,欧式筛
107 0
POJ 2689 Prime Distance (埃氏筛 区间筛)
POJ 2689 Prime Distance (埃氏筛 区间筛)
92 0
欧拉计划Problem 5 最小公倍数
欧拉计划Problem 5 最小公倍数
|
C语言
HDOJ/HDU Tempter of the Bone(深搜+奇偶性剪枝)
HDOJ/HDU Tempter of the Bone(深搜+奇偶性剪枝)
85 0
|
Java
HDOJ/HDU 5686 Problem B(斐波拉契+大数~)
HDOJ/HDU 5686 Problem B(斐波拉契+大数~)
87 0
|
人工智能 BI 机器学习/深度学习
母函数应用
砝码称重   有了对母函数的一般认识后,我们可以用它来解决一些简单的计数问题,比如说下面这道题:我们有1,2,3,4g四个砝码,一共可以称出多少种重量;而且,对于某一个重量,共有多少种称法?这个可以直接用母函数求解,1g的对应1+x,2g的对应1+x2,以此类推。
1360 0