codevs 1702 素数判定2 玄学?? 解题报告?
2017-09-29 09:56
507 查看
题目描述 Description
一个数,他是素数么?设他为P满足(P<=263-1)
输入描述 Input Description
P输出描述 Output Description
Yes|No样例输入 Sample Input
2样例输出 Sample Output
Yes数据范围及提示 Data Size & Hint
算法导论——数论那一节注意Carmichael Number
思路
我怎么知道思路啊我就是不知道啊!!!想用米勒拉宾来判断,复杂度o(p*logn),p是个数,取决于你想要的精度。然后我写的丑常数比较大,于是就只有40分!!
根本不会啊求助大佬啊
代码
抽风扯淡代码#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> #include<vector> #include<ctime> using namespace std; long long qpow(int a,int b,int r) { long long ans=1,base=a; while(b) { if (b&1) ans=(ans*base)%r; base=(base*base)%r; b>>=1; } return ans; } int Miller_Rabbin(int n,int a)//米勒拉宾素数测试 { int r=0,s=n-1,j; if (!(n%a)) return 0; while(!(s&1)) {s>>=1;r++;} long long k=qpow(a,s,n); if (k==1) return 1; for (j=0;j<r;j++,k=k*k%n) if (k==n-1) return 1; return 0; } bool IsPrime(int n)//判断是否是素数 { int tab[]={2,3,5,7}; for (int i=0;i<4;i++) { if (n==tab[i]) return true; if (!Miller_Rabbin(n,tab[i])) return false; } return true; } int main() { long long n; scanf("%I64d",&n); if (IsPrime(n)==1) printf("Yes\n"); else printf("No\n"); return 0; }
这哥们儿过了??
相关文章推荐
- [Miller-Rabin][CODEVS1702]素数判定2 解题报告
- Codevs1702 素数判定2
- HDU 2012 素数判定 解题报告
- Miller-Rabin算法 codevs 1702 素数判定 2
- 九度OJ 1047素数判定 解题报告
- codevs 1702素数判定2
- (解题报告)HDU2012---素数判定
- 【九度OJ】题目1047:素数判定 解题报告
- hdu2012——素数判定解题报告
- hdu2012――素数判定解题报告
- codevs 1078 最小生成树 解题报告
- codevs 1432 总数统计 二分 解题报告
- CodeVS1702 素数判定 2
- codevs 1995 黑魔法师之门 并查集 解题报告
- codevs 2822 爱在心中 Tarjan 解题报告
- codevs 1137||NOIP 2011 计算系数 二项式定理 解题报告
- codevs 2594 解题报告 启发式搜索
- 【数论】【素数判定】CODEVS 2851 菜菜买气球
- 【九度OJ】题目1163:素数 解题报告
- 【原】 POJ 2262 Goldbach's Conjecture 筛素数 解题报告