数论
文章平均质量分 56
ssslpk
这个作者很懒,什么都没留下…
展开
-
hdu1905||poj3641 Pseudoprime numbers
题意: 用a^p == a (mod p)两个数来判断 a^p是否是伪素数,若p是素数,输出"no" ,若a^p是伪素数,输出"yes",否则"no"题解:当p是奇数时 有:( a^p)mod n = ((a % n) *(a ^ (p - 1)) % n) % n;当p是偶数时:a ^ p = ( a ^ ( p / 2 ) * a^ ( p / 2));于是这里用分治求解;原创 2013-03-13 10:33:47 · 465 阅读 · 0 评论 -
poj2689 素数二次筛选
/* * File: main.cpp * Author: riuhduo * * Created on October 6, 2012, 11:47 AM */#include #include #include #include #include using namespace std;#define maxn 1 << 17#define maxl 1原创 2013-03-13 10:33:18 · 423 阅读 · 0 评论 -
hdu1973 || poj3126 Prime Path
/* * File: hdu1973.cpp * Author: ssslpk * Created on August 28, 2012, 4:34 PM * 题意:给出两个四位数,现要改变第一个数中的个,十,百,千位当中的一个数 * 使它最终变成第二个数,要求这过程中形成的数是素数,问最少的步骤 * * 题解:素数筛选+bfs */#include #include原创 2012-08-29 00:27:39 · 1228 阅读 · 0 评论 -
poj 1365 Prime Land (质因子分解)
题目链接:http://poj.org/problem?id=1365题目意思:n= p1^e1* p2^ e2* ……pk^ek现在给出p1,e1 ,p2,e2……pk,ek。求n-1 的质因子与相对应的幂,质因子从大到小代码如下:/* * File: main.cpp * Author: ssslpk *32ms * Created on Au原创 2012-08-29 00:27:03 · 771 阅读 · 0 评论 -
poj2379 Sum of Consecutive Prime Numbers(水)
/* * File: main.cpp * Author: ssslpk * * Created on August 28, 2012, 3:08 PM * * 题目意思: 给出一个数,求这个数有几种方法是由一至多个连续的素数之和 * 解题: 暴力水过 */#include #include#include#include#include#define ma原创 2012-08-29 00:26:39 · 625 阅读 · 0 评论 -
hdu3826 素数筛选
解题思路:保存10^6前的素数再逐个判断没把“lld”改为“I64d” wa 了一个下午。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。//============================================================================// Name : hdu3826原创 2012-08-20 23:43:20 · 595 阅读 · 0 评论 -
poj1811 Prime Test 素数测试 +整数分解+分治
题目链接:http://poj.org/problem?id=1811题目意思:给出一个数判断是否是素数,若不是素数,求出最小质因子费马小定理:若p是素数,则有 a^(p-1) =1 (mod p ) , 1二次探测定理: 若p是素数,对于 0首先是素数的测试,根据费马小定理和二次探测定理对素数进行测试整数分解: n为待分解数,1原创 2012-08-20 23:42:45 · 509 阅读 · 0 评论 -
sgu491 Game for Little Johnny
题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=491题目意思: 对于 a*x+b*y=N的一个方程,给出N的值(1解题思路: 用O(n * log(n))来记录1~100 000的所有的约数,然后对a 从1到 N/2上遍历求符合条件的b的个数//用时 937ms//===================原创 2012-08-29 00:25:10 · 777 阅读 · 0 评论 -
poj2407 Farey Sequence 欧拉函数
//============================================================================// Name : poj2407.cpp// Author : ssslpk// Version :// Copyright : Your copyright notice// Descripti原创 2012-08-29 00:23:57 · 594 阅读 · 0 评论 -
hdu2669 扩展欧几里德 二元一次解不定方程
题意:给出两个非负整数a,b 求x,y 使ax+by=1,而且x非负并最小的答案题解:朴素的欧几里德原理: gcd(a,b)=gcd(b,a mod b)扩展欧几里德定理: 对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b的最大公约数,必然存在整数对 x,y ,使得 gcd(a,b)=ax+by。令a>b当b==0 ,x=1,y=0;否则,原创 2012-07-27 22:14:42 · 620 阅读 · 0 评论 -
hdu1573 X问题 中国剩余定理
题意:给出两个数 N,M,再给出M个除数NUM[],再给出对应的M个余数REMAIN[] 。求在区间[1,N]内有多少个数满足所有情况。除了应用扩展欧几里德和中国剩余定理,要注意的是可以将M个除数变成两个除数,然后更新除数和余数。代码如下://============================================================原创 2012-07-29 00:10:07 · 838 阅读 · 0 评论 -
poj1061 青蛙的约会 解二元一次不定方程
题目链接:http://poj.org/problem?id=1061题目题目:在一个周长为L的圆圈上两只青蛙分别在s1,s2,速度(步长)分别为v1,v2,它们往同一风向走,问几步后相遇。依然是扩展欧几里德,要注意的是这里数据范围很大,用64位并且用gcd处理一下,之前没处理就wa了好多次。代码如下://====================原创 2012-07-27 23:31:05 · 472 阅读 · 0 评论 -
hdu 1576 求解模线性方程
题意:已知 gcd(B, mod)=1, A%B==0,A/B *B=n(mod mod);给出B,n;求 A/B= ans (mod mod)中的ans题解:求解模线性方程先求A/B,令A/B=x则有B*x=n(mod mod),可想到扩展欧几里德求出x,因为这里的x是B*x=1(mod 9973)的解,x之后还要乘n代码如下:#include#inclu原创 2012-07-27 23:30:51 · 548 阅读 · 0 评论 -
计时器比较 gcd与stein
#include#include#include#includeusing namespace std;__int64 gcd(__int64 a,__int64 b){return b ? gcd(b,a%b): a;}__int64 stein(__int64 a,__int64 b){ if(a==b)return a; if(a==0)ret原创 2012-07-27 11:38:54 · 358 阅读 · 0 评论 -
数论公式2
斯特灵公式是一条用来取n阶乘近似值的数学公式。一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特灵公式十分好用,而且,即使在 n很小的时候,斯特灵公式的取值已经十分准确。公式为:以下等式或者不等式均可以用数学归纳法予以证明!1 + 3 + 5 + ... + (2n - 1) = n^21*2 + 2*3 + 3*4 + ... +转载 2013-03-13 10:34:24 · 557 阅读 · 0 评论