快速幂和素数筛
来源:互联网 发布:java开发薪资 编辑:程序博客网 时间:2024/06/05 06:21
快速幂:
long long int text(long long int a,long long int b,long long int c)
{
long long int ans=1;
a=a%c;
while(b>0)
{
if(b%2==1)
ans=(ans*a)%c;
b/=2;
a=(a*a)%c;
}
return ans;
}
素数筛:
bool texs(long long n)
{
for(int i=2;i*i<=n;i++)
{
if(n%i==0)
return true;
}
return false;
}
例题(HDU - 1905 )
Given 2 < p ≤ 1,000,000,000 and 1 < a < p, determine whether or not p is a base-a pseudoprime.
3 210 3341 2341 31105 21105 30 0
nonoyesnoyesyes标程:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
long long int text(long long int a,long long int b,long long int c)
{
long long int ans=1;
a=a%c;
while(b>0)
{
if(b%2==1)
ans=(ans*a)%c;
b/=2;
a=(a*a)%c;
}
return ans;
}
bool texs(long long n)
{
for(int i=2;i*i<=n;i++)
{
if(n%i==0)
return true;
}
return false;
}
int main()
{
long long int a,p;
long long c;
while(scanf("%lld%lld",&p,&a)&&(a+p))
{
c=text(a,p,p);
if(c==a&&texs(p))
{
printf("yes\n");
}
else
{
printf("no\n");
}
}
return 0;
}
- 快速幂和素数筛
- 快速幂 & 素数筛法
- Carmichael Numbers(快速幂和素数筛选)
- 快速素数筛模板
- 【素数 && 快速幂】UVA
- 素数筛实现素数的快速筛选
- 一般筛法和快速线性筛法求素数 求素数的一点总结
- UVA10006->素数筛&&快速幂取模
- 快速求素数筛法
- 筛法快速求解素数
- 素数 快速幂 gcd.lcm
- 【板子】gcd、exgcd、乘法逆元、快速幂、快速乘、筛素数、快速求逆元、组合数
- 【板子】gcd、exgcd、乘法逆元、快速幂、快速乘、筛素数、快速求逆元、组合数
- UVA 10006 - Carmichael Numbers (快速幂+筛素数)
- UVA - 10006 Carmichael Numbers(素数筛+快速幂)
- hdu1905 Pseudoprime numbers (快速幂+素数筛法)
- Uva 10006 Carmichael Numbers(数论、快速幂、素数筛法)
- 【hdu】 Pseudoprime numbers 伪素数(快速幂+判定素数)
- JS中的正则表达式
- java再复习——线程的安全问题以及同步
- 3.5
- 问题 G: Vegetable and Road【并查集】
- [String Table] Boggler Solver
- 快速幂和素数筛
- #1473 : 小Ho的强迫症(扩展欧几里得)@
- LeetCode237. Delete Node in a Linked List
- 什么是Z语言
- 开始技术博客之旅
- [LeetCode]Longest Increasing Path in a Matrix(Java)
- python切片详解
- loadrunner入门篇-Vuser发生器
- Xlistviw