def reduceNum(n): '''题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5''' print '{} = '.format(n), if not isinstance(n, int) or n <= 0 : print 'Please input a vali
分类:
编程语言 时间:
2016-03-03 10:16:46
阅读次数:
911
1#题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。代码:2importpdb
3tmp=int(input(‘请输入一个正整数:‘))
4print(‘%d=‘%tmp,end=‘‘)
5
6i=2
7li=[]
8#pdb.set_trace()
9whilei>1:
10iftmp%i==0:
11tmp=tmp/i
12li.append(i)
13i=1
14iftmp==1:
15i=0
16i..
分类:
编程语言 时间:
2016-02-29 16:51:19
阅读次数:
243
题目11:将一个正整数分解质因数。比如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k。然后按下述步骤完毕: (1)假设这个质数恰等于n。则说明分解质因数的过程已经结束。打印出就可以。 (2)假设n<>k,但n能被k整除。则应打印出k的值。并用n除以k
分类:
编程语言 时间:
2016-02-27 20:43:53
阅读次数:
296
欧拉函数,用φ(n)表示 欧拉函数是求小于n的数中与n互质的数的数目 辣么,怎么求哩?~(~o ̄▽ ̄)~o 可以先在1到n-1中找到与n不互质的数,然后把他们减掉 比如φ(12) 把12质因数分解,12=2*2*3,其实就是得到了2和3两个质因数 然后把2的倍数和3的倍数都删掉 2的倍数:2,4,6
分类:
其他好文 时间:
2016-02-17 06:05:00
阅读次数:
263
dp(x)表示最大面值为x时需要的最少硬币数.枚举x的质因数p, dp(x) = min( dp(x/p) - (p-1) * sigma[a[i]/x] ). ---------------------------------------------------------------------
分类:
其他好文 时间:
2016-02-16 23:28:58
阅读次数:
242
一、构造质数表 (1)试除法 源代码: #include<cstdio>int n,s(1),i[1001];int main(){ scanf("%d",&n); i[1]=2; printf("2 "); for (int a=3;s<n;a++) { bool t(0); for (int b
分类:
编程语言 时间:
2016-02-03 20:51:06
阅读次数:
247
在数论,对正整数n,欧拉函数是小于n的数中与n互质的数的数目。首先我们给出欧拉函数的通式:其中p1, p2……pk为n的所有质因数,n是不为0的整数。以上式子是如何得到的呢?下面给出证明:先将n分解质因数为然后利用容斥原理来减去p1、p2……pk的倍数的个数,即。然后我们加上同时时两个因数的倍数的数...
分类:
其他好文 时间:
2016-01-27 14:29:01
阅读次数:
183
2016.1.26主体思想与前面两种筛法一致,但一般题目中数据范围比较大(a<b<=10^12),但也有个利于我们的限制条件(b-a<=10^6)那就很简单了,根据我们熟知的理论,b以内的合数的最小质因数不会大于√b,所以我们就可以筛出[1,√b]内的素数并用这些素数去筛除[a,b]的合数。典型例题...
分类:
其他好文 时间:
2016-01-26 10:22:00
阅读次数:
165
2016.1.25我们都知道,判断一个数是否为素数可以在O(√n)的时间复杂度内解决。但是如果是要求[1,n]内素数的个数,显然一个一个判断有些慢了。但我们知道一个显而易见的性质:一个合数的所有质因数都小于这个合数,一个质数没有比它小的质因数。那么我们可以利用已求得的质因数,来对比他大的合数进行筛除...
分类:
其他好文 时间:
2016-01-25 22:46:25
阅读次数:
253
欧拉函数φ函数的值 通式:φ(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本身)。 (注意:每种质因数只一个。比如12=2*2*3那么φ....
分类:
其他好文 时间:
2016-01-23 12:55:07
阅读次数:
100