`
he91_com
  • 浏览: 411218 次
文章分类
社区版块
存档分类
最新评论

hdu3589 Jacobi symbol(二次剩余 数论题)

 
阅读更多

本题的注意点:n=p1*p2*p3......Pm

解法:直接利用公式a^((p-1)/2)=(a/p)mod p 即可求解。

#include<stdio.h>
#include<math.h>
int flag[1005],p[500],a;
int d[100];
int init(int s)
{
	int len=0,tmp,h=sqrt(s+0.5);
    for(int i=0;p[i]<=h;i++)
	if(s%p[i]==0)
	{
		if(a%p[i]==0)return -1;
		while(s%p[i]==0)
		{
		    d[len++]=p[i];
			s/=p[i];
		}
		if(s==1)return len;
	}
	if(s>1)
	{
		if(a%s==0)return -1;//这地方该开始忘了判断了,查错查了好久TTT
		d[len++]=s;
	}
	return len;
}
int getans(int x,int s)
{
	int tmp=s/2;
	__int64 ans=1,b=x;
	while(tmp>0)
	{
		if(tmp&1)ans=ans*b%s;
		b=b*b%s;
		tmp/=2;
	}
	if(ans!=1)return -1;
	return 1;
}
int main()
{
	int i,j,k=0,n;
	for(i=2;i<1000;i++)
	{
		if(!flag[i])
		{
			p[k++]=i;
			for(j=i*i;j<1000;j+=i)
				flag[j]=1;
		}
	}
	while(scanf("%d%d",&a,&n)!=-1)
	{
		int len=init(n);
		if(len==-1)
		{
			printf("0\n");
			continue;
		}
		int ans=1;
        for(i=0;i<len;i++)
			ans*=getans(a,d[i]);
		printf("%d\n",ans);
	}
	return 0;
}


分享到:
评论

相关推荐

    HDU_2010.rar_hdu 2010_hdu 20_hdu acm20

    【标题】"HDU_2010.rar"是一个压缩包文件,其中包含了与"HDU 2010"相关的资源,特别是针对"HDU ACM20"比赛的编程题目。"hdu 2010"和"hdu 20"可能是该比赛的不同简称或分类,而"hdu acm20"可能指的是该赛事的第20届...

    算法-数塔(HDU-2084).rar

    标题中的“算法-数塔(HDU-2084)”是指一个编程竞赛题目,源自杭州电子科技大学(HDU)的在线编程平台。在这个问题中,参赛者被要求解决一个名为“数塔”的算法挑战。数塔问题通常涉及到递归、深度优先搜索(DFS)...

    HDU 不容易系列之二 2042

    你活的不容易,我活的不容易,他活的也不容易。不过,如果你看了下面的故事,就会知道,有位老汉比你还不容易。

    hdu.rar_HDU 1089.cpp_OJ题求和_hdu_horsekw5_杭电obj

    【标题】"hdu.rar_HDU 1089.cpp_OJ题求和_hdu_horsekw5_杭电obj" 提供的信息是关于一个压缩文件,其中包含了一个名为 "HDU 1089.cpp" 的源代码文件,这个文件是为了解决杭州电子科技大学(Hangzhou Dianzi ...

    多校第二场解题报告+标程

    【标题】:“多校第二场解题报告+标程”是指一次在线编程竞赛后,对参赛者解答问题的总结报告,通常包括了比赛中各个题目解析、解题思路、算法实现以及标准答案代码(标程)。这类报告对于学习算法和提高编程能力...

    HDU题目java实现

    【标题】"HDU题目java实现"所涉及的知识点主要集中在使用Java编程语言解决杭州电子科技大学(HDU)在线评测系统中的算法问题。HDU是一个知名的在线编程竞赛平台,它提供了大量的算法题目供参赛者练习和提交解决方案...

    hdu.rar_hdu

    HDU(杭州电子科技大学在线评测系统)是一个深受程序员喜爱的在线编程练习平台,它提供了丰富的算法题目供用户挑战,帮助他们提升编程技能和算法理解能力。"hdu.rar_hdu"这个压缩包文件很可能是某位程序员整理的他在...

    hdu1250高精度加法

    ### hdu1250高精度加法 #### 背景介绍 在计算机科学与编程竞赛中,处理大整数运算(特别是加法、减法、乘法等)是常见的需求之一。当数字的位数超过了标准数据类型(如`int`、`long`等)所能表示的最大值时,就需要...

    (HDUACM2010版_13)二分匹配及其应用

    杭电ACM课件2014版之(HDUACM2010版_13)二分匹配及其应用

    hdu1020.rar_hdu1020

    HDU 1020,又被称为"猜数字",是一个经典的在线算法竞赛题目,源自中国杭州电子科技大学(Hangzhou Dianzi University)的在线评测系统HDU ACM/ICPC。这个题目要求参赛者编写一个程序,模拟一个猜数字的游戏过程,...

    ACM HDU题目分类

    ACM HDU 题目分类 ACM HDU 题目分类是指对 HDU 在线判题系统中题目的分类,总结了大约十来个分类。这些分类将有助于编程选手更好地理解和解决问题。 DP 问题 DP(Dynamic Programming,动态规划)是一种非常重要...

    HDU.rar_hdu_hdu07_com_shownv9b_www.563hdu.

    【标题】"HDU.rar_hdu_hdu07_com_shownv9b_www.563hdu." 暗示这是一个与HDU(杭州电子科技大学在线编程平台)相关的压缩包,其中可能包含了该平台上的编程竞赛题目或练习题目的源代码。"hdu07"可能是某个特定题目的...

    二分匹配题集

    ### 二分匹配题集概览 #### 一、基础知识 **匹配**:在一个二分图\( G \)中,存在一个子图\( G' \),若\( G' \)的边集中任意两条边不共用同一个顶点,则称\( G' \)的边集为\( G \)的一个匹配。 **最大匹配**:在...

    HDUACM2010版13二分匹配及其应用.ppt

    HDUACM2010版13二分匹配及其应用.ppt

    hdu_acm_1084.rar_ACM_HDU10_acm10_hdu_hdu 1084

    【标题】"hdu_acm_1084.rar_ACM_HDU10_acm10_hdu_hdu 1084" 提供的是一个关于杭电(HDU)ACM竞赛第1084题的解决方案。该题目可能是在编程竞赛中常见的算法问题,而ACM(国际大学生程序设计竞赛)是全球知名的编程...

    hdu-page-11-answer.rar_hdu_hdu oj第十一页_page_搜题_杭电oj

    "HDU Page 11 Answer"提供的题解资源,不仅节省了逐一搜索题解的时间,还提供了一次性获取多题答案的机会。通过对比不同解法,学习者可以开阔思路,理解多种解决问题的角度,进一步提升编程素养。 总之,"HDU Page ...

    2019-hdu-multi-(2019杭电多校第二场数据与标程).zip

    《2019-hdu-multi-(2019杭电多校第二场数据与标程).zip》是一个专门针对编程竞赛爱好者和ACM(国际大学生程序设计竞赛)参赛者的资源包。这个压缩文件的核心内容是2019年杭州电子科技大学(HDU)主办的多校联合...

    Rightmost Digit_hdu_

    【标题】"Rightmost Digit HDU" 这道题目来源于HDU(杭州电子科技大学)的在线判题系统,通常这类题目是编程竞赛或者算法训练的一部分。"Rightmost Digit"直译为“最右边的数字”,我们可以推测这是一个关于数字...

    hdu 3333 turing tree 解题报告

    题目“HDU 3333 Turing Tree”要求解决的问题是:给定一个整数序列和一系列区间,计算每个区间内不重复数字的和。由于数据规模较大(N ,000, K ,000),直接的暴力方法效率过低,因此我们需要采用一种更高效的数据...

    HDU DP动态规划

    【标题】"HDU DP动态规划"涉及到的是在算法领域中的动态规划(Dynamic Programming,简称DP)技术,这是解决复杂问题的一种高效方法,尤其适用于有重叠子问题和最优子结构的问题。动态规划通常用于优化多阶段决策...

Global site tag (gtag.js) - Google Analytics