题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。...
分类:
编程语言 时间:
2015-04-29 17:05:57
阅读次数:
163
最近,我翻了一下之前的C语言教材,看了三个有意思的小程序,包括:寻找“水仙花数”、判断某数是否为素数、对一个数进行质因数分解。我想把这三个东西放到一个程序中,便写下了此文。 算法步骤1. 寻找“水仙花数”。“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 2. 判断某数是否为素数。素数是指只能被1和它本身整...
分类:
编程语言 时间:
2015-04-27 20:12:30
阅读次数:
201
题目传送门 1 /* 2 设一个b[]来保存每一个a[]的质因数的id,从后往前每一次更新质因数的id, 3 若没有,默认加0,nlogn复杂度; 4 我用暴力竟然水过去了:) 5 */ 6 #include 7 #include 8 #include 9 #i...
分类:
其他好文 时间:
2015-04-27 18:08:05
阅读次数:
109
hdu 4767 Bell
题意:
求第n个bell数,模95041567输出。
限制:
1
思路:
模比较特别,我们先把他分解质因数,然后发现:
95041567 = 31 x 37 x 41 x 43 x 47
我们利用bell数的同余性质:
(mB[n] + B[n+1]) % p = B[p^m + n] % p , 其中p为任意质数
可以分别求B[n]%31...
分类:
其他好文 时间:
2015-04-27 13:16:56
阅读次数:
147
C语言中可以使用rand()函数来生成一个从0到RAND_MAX的uniform分布。而rand()函数一般是用线性同余法来实现伪随机。
线性同余法
线性同余方法(LCG)是个产生伪随机数的方法。
它是根据递归公式:
其中是产生器设定的常数。
LCG的周期最大为,但大部分情况都会少于M。要令LCG达到最大周期,应符合以下条件:
1. 互质;
2. 的所有质因数都能整除...
分类:
其他好文 时间:
2015-04-26 18:26:20
阅读次数:
123
φ函数的值,通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1(唯一和1互质的数(小于等于1)就是1本身)。
#include
#include
using namespace std;
int Get(int n)
{
int res,i;
if(n==0...
分类:
其他好文 时间:
2015-04-21 22:47:26
阅读次数:
165
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出100以内的所有完数。 分析:本质还是求质因数。#include using namespace std;bool IsPerfect(int n){ int i, j = 0; int Temp = ...
分类:
其他好文 时间:
2015-04-20 16:47:19
阅读次数:
110
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n != k,但n能被k整除,则应打印出k的值,并用n除以k的商,作...
分类:
其他好文 时间:
2015-04-17 17:12:52
阅读次数:
120
题目大意:组合数取模,n和m并不算大,p比较大且是合数。思路:暴力分解+快速幂注:暴力也是有区别的,分解质因数时可以用以下work函数,写的非常巧妙,摘录自互联网。 1 #include 2 #include 3 using namespace std; 4 5 typedef long lo...
分类:
其他好文 时间:
2015-04-17 01:09:05
阅读次数:
187
分解质因数是将一个数差分成为几个质数相乘,本函数n初始取2void prim(int m, int n) { if (m > n) { while (m%n) n++; m/=n; prim(m, n); cout <<...
分类:
编程语言 时间:
2015-04-16 23:28:28
阅读次数:
369