HDU 3589 二次剩余
来源:互联网 发布:压声喊麦软件效果器 编辑:程序博客网 时间:2024/05/17 01:39
概念原理看置顶文
#include<stdio.h>#include<string.h>#include<math.h>#define ll __int64#define maxn 1000010ll prime[maxn];bool isprime[maxn];ll exp(ll a,ll b,ll p){ ll res=1; for(;b;b>>=1) { if(b&1) res=(res*a)%p; a=(a*a)%p; } return res;}int cal(int a,int n){ if(a%n==0) return 0; else return exp(a,(n-1)/2,n)==1?1:-1;}int main(){ freopen("in.txt","r",stdin); memset(isprime,true,sizeof(isprime)); for(int i=2;i<maxn;i++) { for(int j=2;i*j<maxn;j++) isprime[i*j]=0; } int k=0; for(int i=2;i<maxn;i++) { if(isprime[i]) prime[k++]=i; } int a,n; while(scanf("%d%d",&a,&n)==2) { int ans; if(isprime[n]==0) { ans=1; for(int i=0;n!=1&&i<k;i++) { if(n%prime[i]==0) { int total=0; while(n%prime[i]==0) { total++; n/=prime[i]; } int tmp=cal(a,prime[i]); if(total%2==0&&tmp==-1) tmp=1; ans*=tmp; } } } else ans=cal(a,n); printf("%d\n",ans); } return 0;}
- HDU 3589 二次剩余
- HDU 3589 Jacobi symbol 【二次剩余】
- hdu 3589(二次剩余+雅可比符号)
- 二次剩余
- 二次剩余
- 二次剩余
- 二次剩余
- [二次剩余]求解二次剩余
- HDU 6128 Inverse of sum(二次剩余)
- HDU-6128 Inverse of sum(二次剩余/公式)
- URAL 1132 二次剩余
- 二次剩余方程求解
- poj1808--二次剩余
- URAL 1132 二次剩余
- 关于二次剩余
- 【二次剩余-欧拉准则】HDOJ Jacobi symbol 3589
- HDU 4794 Arnold ACM/ICPC 2013 Changsha(二次剩余+数论)
- Timus1132(二次剩余方程求解)
- China Faces Tough Choice on Growth
- 领域分析注意事项
- C语言学习
- spring源码下载备注
- Android 系统编译环境设置及源代码编译
- HDU 3589 二次剩余
- hibernate入门之添加和查询
- 创建nfs4_state_owner结构和nfs4_state结构
- 重要的参考winapi没有mfc的操作
- 域控制器简介
- 使用JSON与JQuery实现Ajax
- HibernateException:Unable to get the default Bean Validation factory
- Bernese中的Reset CPU File
- xx