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…
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 1…
好吧……我不会欧拉筛也就罢了…… 傻逼筛法竟然这么长时间以来 一直RE ……源头竟然是 int 爆了. #include<cstdio> #include<algorithm> using namespace std; ]; int a,b; long long ans; void Shai() { vis[]=true; ;i<=;i++) ;j+=i) vis[j]=true; } int main() { scanf("%d%d",&a,&a…
转载自: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∈…
#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%…
1702 素数判定 2 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 传送门 题目描述 Description 一个数,他是素数么? 设他为P满足(P<=263-1) 输入描述 Input Description P 输出描述 Output Description Yes|No 样例输入 Sample Input 2 样例输出 Sample Output Yes 数据范围及提示 Data Size & Hint 算法导论--数论那一节 注意Carmi…
/* 直接费马小定理 */ #include<iostream> #include<cstdio> #include<cstdlib> #include<ctime> #define ll long long using namespace std; ll slow_mul(ll a,ll b,ll c) { ll ans=; a=a%c;b=b%c; while(b) { ) { b--; ans+=a; ans%=c; } a<<=;a%=c…
题目描述 Description 给定区间[L, R](L <= R <= 2147483647,R-L <= 1000000),请计算区间中素数的个数. 输入描述 Input Description 两个数L和R 输出描述 Output Description 一行,区间中素数的个数 样例输入 Sample Input 2 11 样例输出 Sample Output 5 数据范围及提示 Data Size & Hint 详见试题 #include<cstdio> #…
5790 素数序数(筛素数版) 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold       题目描述 Description 给定一个整数n,保证n为正整数且在int范围内,输出n是第几个质数 建议使用筛素数法 输入描述 Input Description 一行,一个整数 输出描述 Output Description 一行,一个整数 样例输入 Sample Input 3 样例输出 Sample Output 2 数据范围及提示 Data Size & Hint…
1430 素数判定  时间限制: 1 s  空间限制: 1000 KB  题目等级 : 青铜 Bronze 题解       题目描述 Description 质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数. 素数在数论中有着很重要的地位.比1大但不是素数的数称为合数.1和0既非素数也非合数.质数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一.基于质数定义的基础之上而建立的问题有很多世界级的难题,如哥德巴赫猜想等.算术基本定理证明每个大于1的…
Miller-Rabin算法实现,但是一直被判题程序搞,输入9999999999得到的结果分明是正确的但是一直说我错 #include <cstdio> #include <cmath> #include <cstdlib> #include <ctime> using namespace std; typedef long long LL; LL gcd(LL x, LL y) { if (!y) return x; return (y, x%y); }…
提交地址:http://codevs.cn/problem/2964/ 2964 公共素数因数  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 白银 Silver 题解       题目描述 Description 小单同学刚学习了一个数分解成几个素数(也叫质数)因子相乘的知识. 例如:12=2*2*3:25=5*5:144=2*2*2*2*3*3······等,比如,第一个表达式,说明12这个整数可以分解出2.2.3这三个质数因子.老师给他布置了一个作业,小单看来看去,怎…
素数判定模板. #include<cstdio> #include<map> using namespace std; ],ans=-,l,r,n,sum[]; bool is_prime(const int &x) { ;i*i<x;i++) ) return false; return true; } int main() { scanf("%d",&n); ;i<=n;i++) { scanf("%d",&a…
题目描述 Description 一个数,他是素数么? 设他为P满足(P<=263-1) 输入描述 Input Description P 输出描述 Output Description Yes|No 样例输入 Sample Input 2 样例输出 Sample Output Yes 数据范围及提示 Data Size & Hint 算法导论——数论那一节注意Carmichael Number #include<iostream> #include<cstdio>…
2964 公共素数因数  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 白银 Silver 题解       题目描述 Description 小单同学刚学习了一个数分解成几个素数(也叫质数)因子相乘的知识. 例如:12=2*2*3:25=5*5:144=2*2*2*2*3*3······等,比如,第一个表达式,说明12这个整数可以分解出2.2.3这三个质数因子.老师给他布置了一个作业,小单看来看去,怎么都不会做,只好虚心求教各位同学(他自己睡觉去了!) 问题是这样的:已知…
 时间限制: 8 s  空间限制: 256000 KB  题目等级 : 白银 Silver 题解       题目描述 Description 小明喜欢研究素数,他想统计两个自然数之间的素数个数,现在他给定一个区间,请你帮忙求出这个区间的素数个数. 输入描述 Input Description 两个数a和b,表示开区间[a,b] 输出描述 Output Description 输出一个数,表示区间素数的个数 样例输入 Sample Input 2 100 样例输出 Sample Output 2…
题目描述 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 <al…
1675 大质数 2  时间限制: 1 s  空间限制: 1000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 小明因为没做作业而被数学老师罚站,之后数学老师要他回家把第n个质数找出来. 小明于是交给聪明的你.请你帮忙![wikioi-1530] …………………………以上为背景………………………… 老师怀疑小明仅仅是找到第n个质数,于是又叫小明把1到n以内(不包括n)的质数全部找出来.小明又找到了你…… 输入描述 Input Des…
#include<iostream>#include<cstdio>#include<cmath>using namespace std;int a[2];int main(){ int p,b=0,flag=1; scanf("%d",&p); for(int i=2;i<=p/2;i++) { if(p%i==0) { printf("composite"); return 0; } } printf("…
hdu5901题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5901 code vs 3223题目链接:http://codevs.cn/problem/3223/ 思路:主要是用了一个Meisell-Lehmer算法模板,复杂度O(n^(2/3)).讲道理,我不是很懂(瞎说什么大实话....),下面输出请自己改 #include<bits/stdc++.h> using namespace std; typedef long long LL;…
链接:http://codevs.cn/problem/1530/ 解题思路: 这个题最关键的剪枝还是 因子小于平方根,但不是像原来那样用. 逆转思维,与其说判断哪些是质数,不如说判断哪些不是质数,更简单,更效率. 所有的合数都有一个共同的特点,就是能被拆成质因子. 那么已经出现的质因子,迟早有一次会成为一个合数的因子. 那么直接拿要判断的数挨个被质数除一遍,就可以直接判断是不是合数了. 写到这,前三个点就过了,至于最后一个100000,就是开头提到的剪枝. 不管怎样,一个合数里面的质因子一定也…
题目:http://codevs.cn/problem/3223/ 分析: 可以算出来最大质因子最大不超过50000,因为如果超过50000,那么平方就超过maxlongint了.所以可以筛出50000内的素数,然后把[L,R]内的筛掉…
http://codevs.cn/problem/1008/ 题目描述 Description 已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n).从 n 个整数中任选 k 个整数相加,可分别得到一系列的和.例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为: 3+7+12=22 3+7+19=29 7+12+19=38 3+12+19=34. 现在,要求你计算出和为素数共有多少种. 例如上例,只有一种的和为素数:3+7+19=29).…
题目描述 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现在所有真钞票的数量.现在,请你帮助沙拉公主解决这个问题,由于可能张数非常大,你只需计算出对R取模后的答案即可.R是一个质数.//codevs这里有坑,R是合数 输入输出格式 输入格式: 第一行为两个整数T,R.R<=10^9+10,T<=10000,表示该组中测试数据数目,R为模 后面T行,每行一对整数N,M,…
http://codevs.cn/problem/1979/ 时间限制: 1 s  空间限制: 1000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 给定一个长度为N(0<n<=10000)的序列,保证每一个序列中的数字a[i]是小于maxlongint的非负整数 ,编程要求求出整个序列中第k大的数字减去第k小的数字的值m,并判断m是否为质数.(0<k<=n) 输入描述 Input Description 第一行为2个数n,…
Help Hanzo 题意:求a~b间素数个数(1 ≤ a ≤ b < 231, b - a ≤ 100000).     (全题在文末) 题解: a~b枚举必定TLE,普通打表MLE,真是头疼.. b - a ≤ 100000 是关键. 类似素数筛的方法: 1.初始化vis[]=0 ; 2.素数的倍数vis[]=1; 3.  b较小时,素数筛解决   b很大时,素数筛的vis[]会MLE,此时用vis2[i-a]保存vis[i]就不会MLE 了.. #include<iostream>…
题目:codevs 3289 花匠 链接:http://codevs.cn/problem/3289/ 这道题有点像最长上升序列,但这里不是上升,是最长"波浪"子序列.用动态规划可以解决,方程类似最长上升子序列: f[i]=max(f[j])  ( 1≤j≤i-1 && ( (f[j]%2=1 && A[j]<A[i] ) || (j%2=0 && A[j]>A[i]) )  ) p[i]=max(p[i])  (  1≤j≤…
Description: Count the number of prime numbers less than a non-negative number, n click to show more hints. Credits:Special thanks to @mithmatt for adding this problem and creating all test cases. 求n以内的所有素数,以前看过的一道题目,通过将所有非素数标记出来,再找出素数,代码如下: public i…
任务 求解第 10,0000.100,0000.1000,0000 ... 个素数(要求精确解). 想法 Sieve of Eratosthenes 学习初等数论的时候曾经学过埃拉托斯特尼筛法(Sieve of Eratosthenes),这是一种非常古老但是非常有效的求解\(p_n\)的方法,其原理非常简单:从2开始,将每个素数的各个倍数都标记成合数. 其原理如下图所示: 图引自维基百科 埃拉托斯特尼筛法相比于传统试除法最大的优势在于:筛法是将素数的各个倍数标记成合数,而非判定每个素数是否是素…
首先显示1024范围内的所有素数,然后显示输入的数是否是素数.1024 是代码中计算的素数的范围,可以修改.计算平方根,是为了确定一个基数的范围.1024的平方根是32,两个超过32 的数相乘,肯定大于1024,所以基数的范围是2-32,倍数的范围是基数的倍数小于1024.思路是:把所有基数的所有倍数在BitArray里面的值设置为false,BitArray中为true的下标,即为素数. 1 public class BitArrayClass { public static void Fin…