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

数据范围及提示 Data Size & Hint

注意没有要求a<b

水水更健康

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define N 70000
using namespace std;
bool not_prime[N];
int n,m,ans,tot,prime[N];
int read()
{
    int x=0,f=1; char ch=getchar();
    while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘) f=-1; ch=getchar();}
    while(ch>=‘0‘&&ch<=‘9‘) {x=x*10+ch-‘0‘; ch=getchar();}
    return x*f;
}
void Euler_sieve()
{
    memset(not_prime,0,sizeof(not_prime));
    for(int i=2;i<=m;i++)
    {
        if(!not_prime[i]) prime[++tot]=i;
        for(int j=1;j<=tot;j++)
        {
            if(i*prime[j]>m) break;
            not_prime[i*prime[j]]=1;
            if(i%prime[j]==0) break;
        }
    }
}
int main()
{
    n=read(),m=read();
    if(n>m) swap(n,m);
    Euler_sieve();not_prime[1]=1;
    for(int i=n;i<=m;i++)
     if(!not_prime[i])
       ans+=i;
    printf("%d",ans);
}
时间: 2024-11-11 10:38:14

codevs——1462 素数和的相关文章

【数论】【筛法求素数】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

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∈

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 <

codevs:1462 素数和:给定2个整数a,b 求出它们之间(不含a,b)所有质数的和。

#include<iostream>#include<cstdio>#include<cmath>using namespace std;int main(){ int flag=0,a,b,tot=0; scanf("%d%d",&a,&b); if(a>b)swap(a,b); for(int i=a+1;i<b;++i) { flag=1; for(int j=2;j<=sqrt(i);++j) { if(i%

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就够

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的正整数都可以写成素

CODE[VS] 1462 素数和

题目描述 说明 给定2个整数a,b求出它们之间(不含a,b)所有质数的和. 输入描述 输入描述 一行,AB(0 <= A,B <= 65536) 输出描述 输出描述 一行,A,B之间(不含A,B)所有素数的和. 样例输入 示例输入 39 1224 样例输出 示例输出 111390 数据范围及提示 数据大小和提示 注意没有要求A <B 看到了热搜: 地铁battle站.. 没忍住,点开了. 有这就是街舞的内容!!! 哎,到了高中真的是啥也看不了哇. 看到了亮亮和杨文昊的battle. 太燃

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