codevs 5790 素数序数

5790 素数序数(筛素数版)

时间限制: 1 s

空间限制: 32000 KB

题目等级 : 黄金 Gold

题目描述 Description

给定一个整数n,保证n为正整数且在int范围内,输出n是第几个质数

建议使用筛素数法

输入描述 Input Description

一行,一个整数

输出描述 Output Description

一行,一个整数

样例输入 Sample Input

3

样例输出 Sample Output

2

数据范围及提示 Data Size & Hint

int就够了。。。

然后看限制和题目名称,你懂得

别的没啥了吧

 1 #include<iostream>
 2 #include<cmath>
 3 using namespace std;
 4 #define maxn 20000000
 5 bool f[maxn];
 6 int main()
 7 {
 8     int n,ans=0;
 9     cin>>n;
10     for(int i=2;i<=n;i++)
11     {
12         if(!f[i])
13         {
14             ans++;
15             for(int j=1;i*j<=20000000;j++)
16             f[i*j]=true;
17         }
18     }
19     cout<<ans;
20 }
时间: 2024-08-27 13:26:26

codevs 5790 素数序数的相关文章

Miller-Rabin算法 codevs 1702 素数判定 2

转载自:http://www.dxmtb.com/blog/miller-rabbin/ 普通的素数测试我们有O(√ n)的试除算法.事实上,我们有O(slog³n)的算法. 定理一:假如p是质数,且(a,p)=1,那么a^(p-1)≡1(mod p).即假如p是质数,且a,p互质,那么a的(p-1)次方除以p的余数恒等于1.(费马小定理) 该定理的逆命题是不一定成立的,但是令人可喜的是大多数情况是成立的. 于是我们就得到了一个定理的直接应用,对于待验证的数p,我们不断取a∈[1,p-1]且a∈

Miller_Rabin codevs 1702 素数判定2

#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<ctime> #define ll long long #define T 10 using namespace std; ll slow_mul(ll a,ll b,ll c)//防止爆掉 { ll ans=0; a=a%c;b=b%c; while(b) { if(b&1)

codevs——1430 素数判定

1430 素数判定 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 青铜 Bronze 题解 题目描述 Description 质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数. 素数在数论中有着很重要的地位.比1大但不是素数的数称为合数.1和0既非素数也非合数.质数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一.基于质数定义的基础之上而建立的问题有很多世界级的难题,如哥德巴赫猜想等.算术基本定理证明每个大于1的正整数都可以写成素

codevs——1462 素数和

1462 素数和 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 青铜 Bronze 题解 题目描述 Description 给定2个整数a,b 求出它们之间(不含a,b)所有质数的和. 输入描述 Input Description 一行,a b(0<=a,b<=65536) 输出描述 Output Description 一行,a,b之间(不含a,b)所有素数的和. 样例输入 Sample Input 39 1224 样例输出 Sample Output 111390 数据范

codevs 1702素数判定2

Miller-Rabin算法实现,但是一直被判题程序搞,输入9999999999得到的结果分明是正确的但是一直说我错 1 #include <cstdio> 2 #include <cmath> 3 #include <cstdlib> 4 #include <ctime> 5 6 using namespace std; 7 8 typedef long long LL; 9 LL gcd(LL x, LL y) 10 { 11 if (!y) retur

【数论】【筛法求素数】CODEVS 1462 素数和

好吧……我不会欧拉筛也就罢了…… 傻逼筛法竟然这么长时间以来 一直RE ……源头竟然是 int 爆了. 1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 bool vis[70000]; 5 int a,b; long long ans; 6 void Shai() 7 { 8 vis[1]=true; 9 for(long long i=2;i<=65536;i++) 10 for(long

素数相关?(有关素数的题持续更新中)x

素数(大体举几个栗子): 素数相关知识: 素数概念: 最大公约数只有1和它本身的数叫做质数(素数) 素数小性质: 1.大于一的整数必有素因数. 2.设p是素数,n是任意一个整数 能够推出p|n,(p,n)=1; 3.设p是素数,a,b为整数,若p|ab,则ab中至少有一个能被p整除 4.素数有无穷多个证明: (素数与整数之间的关系:1整除2互素) 假定正整数中只有有限个素数 设p1,p2……pk为从小到大排列起来的数 且N=p1*p2*……pk 设M=N+1 如果M为素数,那么M要大于p1,p2

codevs 2945 计算素数

题目描述 Description 计算[A,B](区间包括A和B,2<=A<=B<=18000000)之间,一共有多少素数? 输入描述 Input Description 一行两个数A和B 输出描述 Output Description 一个数,表示素数的个数 样例输入 Sample Input 3 10 样例输出 Sample Output 3 数据范围及提示 Data Size & Hint 2<=A<=B<=18000000 思路: 素数筛+枚举 代码:

1462 素数和 codevs

题目描述 Description 给定2个整数a,b 求出它们之间(不含a,b)所有质数的和. 输入描述 Input Description 一行,a b(0<=a,b<=65536) 输出描述 Output Description 一行,a,b之间(不含a,b)所有素数的和. 样例输入 Sample Input 39 1224 样例输出 Sample Output 111390 数据范围及提示 Data Size & Hint 注意没有要求a<b 1 #include <