![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
soul11201
这个作者很懒,什么都没留下…
展开
-
bit 1049 Relatives
Relatives 时间限制: 1秒 内存限制: 64M ProblemDescription Given n, a positive integer, how many positive integers less than or equal to n are relatively prime to n ? Two integers a and b are relativ原创 2013-02-14 23:41:21 · 638 阅读 · 0 评论 -
弃九法,数论同余学习笔记
在数论里面有这么一个方法能简单的判断一下两个数相乘以后得到的结果是否是正确的,而这个方法就是弃九法。弃九法归根结底还用了同余的一些基本性质。 那什么是弃九法呢?先从两个数相乘说起吧。比如说 28997*29459 = 11441912613这个结果对吗?由于弃九法用到了很多 的同余方面的只是。那么先就说一下有关同余的概念。 什么是同余呢? 同余的概念是这样说的,如原创 2013-02-28 21:17:02 · 3036 阅读 · 0 评论 -
hdu 1222
原理用到的公式就是就是m,n不是互素的。下面我从中国剩余定理的角度说一下原因。假设m,n是互素的,则一定存在一个x 满足 m x mod n 分别余 k = 1,2,3,4,、、、n-1,即 mx mod n = k 有解。其中x为狼转的圈数,k为洞的编号。说明如果m,n互素,只要这只狼足够耐心,所有的洞都会让它找一遍。。。其实更一般的来说这是一个一元模线性方程。mx mod n = k 如果k原创 2013-02-21 21:39:05 · 922 阅读 · 0 评论 -
hdu 2669
扩展的欧几里德。直接上模板。AC! #include void ext_eclud(int a,int b,int *gcd,int *x,int *y){ if(b==0){ *gcd = a; *x = 1; *y = 0; return ; } ext_eclud(b,a%b,gcd,x,y); int temp = *y; (*y) = (*x)-(a原创 2013-02-22 11:11:32 · 1042 阅读 · 0 评论 -
hdu 1722
公式:m+n -gcd(m,n); 参考blog:http://blog.csdn.net/cqjianx/article/details/7831743 /* 公式q+p-gcd(p,q) gcd 求两个数的最大公约数 也就是两种分法重复的部分 先把蛋糕分成q份,然后把蛋糕拼在一起,然后再分成p份。 分成q份需要切q刀,分成p份需要切p刀,但是会有重复,减去重原创 2013-02-21 21:27:51 · 531 阅读 · 0 评论 -
hdu 2824
题意大意 求[a,b]内的所有数的欧拉函数的数值之和。。。。先前便求欧拉函数便求和的方法直接超时了,改用筛法打个欧拉函数表就好了,用空间换时间哇。哈哈哈。。。 因为 long long sum 一直wa 改成__int64 直接过了。。。。 #include #include int phi[3000010]; int prime[3000010],prime_top = 0;原创 2013-02-21 22:00:20 · 523 阅读 · 0 评论 -
数论学习笔记
这两天一直再看数论方面的东西,心里也想了很多的东西,凑着现在有时间,写写也整理一下思路,学习数论的第一感觉就是东西多,乱杂,性质定理公式太别多。但是思路理清楚,就好了。在这里推荐和我一样数论刚入门的人,看陈景润写的初等数论一书,我感觉写的真不错,看完后,思路感觉非常的清晰。当然东西也特别多,东西真是一次无法看完呀,但是我感觉有很多的东西非常的有意思,比如说的数论的性质引理定理什么的第一章一次就给出原创 2013-02-22 12:06:28 · 1003 阅读 · 0 评论 -
hdu 1787 GCD again
题意是求 比N小且满足(M,N)> 1的M的数的个数Num。根据 N = phi(N) + Num + 1,即可求得,phi(N) :N的欧拉函数。 #include int ans; void Euler(int n){ ans = 1; for(int i = 2; i * i <= n;++i){ if(!(n%i)){原创 2013-02-21 21:00:26 · 520 阅读 · 0 评论 -
hdu 1286 找新朋友
此题是赤裸裸的求欧拉函数,但是傻冒的用辗转想除法去求的,结果悲剧了,tle了。 #include int Ecluid(int N,int a){ //求 N 和a的最大公约数 if(N % a == 0)return a; else{ N%=a; Ecluid(a,N); } } int main(){ int test_case,N,friend_num; sca原创 2013-02-21 17:46:58 · 2350 阅读 · 0 评论 -
hdu 1042 N!
#include #include int main(int argc, char *argv[]) { FILE *fp; fp = freopen("in.txt","r",stdin); fp = freopen("out.txt","w",stdout); int N; int RES[50000]; int RES_top = 1,j; while(~scanf("原创 2013-02-19 10:39:07 · 457 阅读 · 0 评论 -
hdu 1212 Big Number(数论)
#include #include int str_to_int(char *input,int len){ //len the length of the str needed to be converted int sum = 0; for(int i = 0;i < len;++i) { sum *= 10; sum += (input[i] - '0'); }原创 2013-02-17 21:41:47 · 488 阅读 · 0 评论 -
跨越千年的RSA算法
数论,数学中的皇冠,最纯粹的数学。早在古希腊时代,人们就开始痴迷地研究数字,沉浸于这个几乎没有任何实用价值的思维游戏中。直到计算机诞生之后,几千年来的数论研究成果突然有了实际的应用,这个过程可以说是最为激动人心的数学话题之一。最近我在《程序员》杂志上连载了《跨越千年的 RSA 算法》,但受篇幅限制,只有一万字左右的内容。其实,从数论到 RSA 算法,里面的数学之美哪里是一万字能扯完的?在写作的过程转载 2013-02-28 21:43:18 · 1378 阅读 · 3 评论