最近,我翻了一下之前的C语言教材,看了三个有意思的小程序,包括:寻找“水仙花数”、判断某数是否为素数、对一个数进行质因数分解。我想把这三个东西放到一个程序中,便写下了此文。 算法步骤1. 寻找“水仙花数”。“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 2. 判断某数是否为素数。素数是指只能被1和它本身整...
分类:
编程语言 时间:
2015-04-27 20:12:30
阅读次数:
201
1 #include 2 int main() 3 { 4 int a; 5 printf("输入一个数,程序将给出它的质数分解。\n"); 6 scanf("%d",&a); 7 printf("a="); 8 int i=2; 9 while(...
分类:
其他好文 时间:
2015-04-16 01:12:49
阅读次数:
154
题意:
给gcd(a,b)和lcm(a,b),求a+b最小的a和b。
分析:
miller_rabin素数判定要用费马小定理和二次探测定理。pollard_rho因数分解算法导论上讲的又全又好,网上的资料大多讲不清楚。
代码://poj 2429
//sep9
#include
#include
#include
#define gcc 10007
#define max_prime...
分类:
其他好文 时间:
2015-04-14 08:32:43
阅读次数:
141
1、因式分解因数分解是十分基本的数学运算,应用广泛。下面的程序对整数n(n>1)进行因数分解。比如,n=60, 则输出:2 2 3 5。请补充缺失的部分。void f(int n){ for(int i=2; i1) printf("%d\n", n);}参考答案: while( n % i ...
分类:
其他好文 时间:
2015-04-08 12:50:06
阅读次数:
178
题意:求一个整数的阶乘的尾数0的个数。分析:**方法一:**对n!做质因数分解n!=2x?3y?5z?...n!=2^x*3^y*5^z*... 显然0的个数等于min(x,z)min(x,z),并且min(x,z)==zmin(x,z)==z,也就是5的幂指数。
证明:
对于阶乘而言,也就是N!=1?2?3?...?nN!=1*2*3*...*n
[n/2]>[n/5][n/2] > [n/...
分类:
其他好文 时间:
2015-04-07 12:04:06
阅读次数:
108
RSA简介
RSA算法据说是目前地球上最重要的加密算法。维基百科是这么介绍的:“对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法,那么RSA的可靠性就会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA密钥才可能被暴力破解。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方...
分类:
编程语言 时间:
2015-03-30 23:12:34
阅读次数:
290
求mk整除n!,求k的最大值。现将m分解质因数,比如对于素数p1分解出来的指数为k1,那么n!中能分解出多少个p1出来呢?考虑10!中2的个数c:1~10中有10/2个数是2的倍数,c += 5;1~10中有10/4个数是4的倍数,所以c += 2,其中有10/8 = 1个数是8的倍数,所以c +=...
分类:
其他好文 时间:
2015-03-18 07:47:23
阅读次数:
127
Prufer编码的应用。懒的写质因数分解,直接高精度。注意当n=1的特殊情况的处理。#include #include #include #include #include #include #include #define rep(i, l, r) for(int i=l; i=r; i--)#d...
分类:
其他好文 时间:
2015-03-16 20:57:30
阅读次数:
163
【求N个数的最小公倍数】1、两两依次求解+提取公因数法。 2、质因数分解法。 例题 2、提取部分公因数法。 3、倍数Trick。 4、幂次Trick。
分类:
其他好文 时间:
2015-03-09 20:54:10
阅读次数:
115
【N个数GCD求解法】1、质因数分解法。 2、两两求解法。 3、更相减损法。 例题 4、Trick1。 5、Trick2。 6、Trick3。
分类:
其他好文 时间:
2015-03-09 20:35:22
阅读次数:
275