1.题目描述:点击打开链接
2.解题思路:本题要求找在区间[L,R]中素因子只有一个且自身不是素数的数,这实际上就是找素因子的幂次大于1的数在该区间中有几个。可以利用前缀和的思想,用cal(k)表示不超过k的这样的数有几个,那么最终的答案就是cal(R)-cal(L-1)。而cal()函数可以通过逐一尝试素数计算最大幂次来得到。当p>sqrt(k)时即可停止枚举。
注意要用long long输...
分类:
其他好文 时间:
2015-04-21 09:44:51
阅读次数:
137
在知乎上看到一个问题:求十亿内所有质数的和,怎么做最快?记录一下第一回答定义为到所有整数中,在普通筛法中外层循环筛完时仍然幸存的数的和。因此这些数要不本身是素数,要不其最小的素因子也大于。因此我们需要求的是,其中是十亿。为了计算,先考虑几个特殊情况。此时所有数都还没有被筛掉,所以不是素数。因为筛法中...
分类:
其他好文 时间:
2015-04-20 01:44:52
阅读次数:
122
素数筛选法是一种快速求某个大整数区间内的所有素数的方法,具体步骤是:找到区间内(例如1~n)除2外所有2的倍数,划掉。然后找到除3外所有3的倍数,划掉。然后5,7,...,续行此法,直到√n为止。这个方法为什么是正确的呢?这样考虑,区间内所有素数都不可能包含其他素因子,因此可以将所有包含素因子的数从...
分类:
其他好文 时间:
2015-04-13 22:39:00
阅读次数:
175
/*1/x+1/y=1/n
给你一个整数n,求x,y组合的个数(n
式中有x,y两个变量,通过转化可以可以转化为一个条件
假设y=n+m;则x的表达式为x=n*n/m+n;
这个条件就是if(n*n%m==0)
所以答案就是n*n的因子个数
显然一般方法直接会超时的
但是n的素因子很少 最大是sqrt(n);
每个数都可以表示成素因子之积
n=(prime[0]^ans[0])...
分类:
其他好文 时间:
2015-04-06 12:58:52
阅读次数:
141
n!后面有多少个0
Problem : 118
Time Limit : 1000ms
Memory Limit : 65536K
description
从输入中读取一个数n,求出n!中末尾0的个数。
input
输入有若干行。第一行上...
分类:
其他好文 时间:
2015-04-03 11:16:18
阅读次数:
118
1) 素数Theorem 素数有无限多个Proof. 若存在最大素数P_max , 设 X = (P_1 * P_2 …… * P_max) + 1,此时如果X为素数, 则X > P_max, 矛盾, 如果X为合数, 则必存在它的一个素因子 P_X 且 P_X > P_max, 矛盾。Theorem...
分类:
其他好文 时间:
2015-03-31 10:29:52
阅读次数:
111
http://poj.org/problem?id=1811题意:求n最小素因子。(n#include #include #include #include using namespace std;typedef long long ll;const ll lim=1e9;inline void C...
分类:
其他好文 时间:
2015-03-21 13:50:00
阅读次数:
123
两个整数a,b 他们的最多公约数为n 最小公倍数为m 则有
a b都能分解为有限个素数的积n为a,b所有素因子取较小指数的积
2.
3.m为a,b所有素因子取较大指数的积
4.n中只含a,b的全部公共素因子
5.m中含有a,b的所有素因子
6.m/n中只含a,b的非公共素因子
7.n*m==a*b...
分类:
其他好文 时间:
2015-03-17 10:31:28
阅读次数:
148
给定一个大数,分解质因数,每个质因子的个数为e1,e2,e3,……em,
则结果为((1+2*e1)*(1+2*e2)……(1+2*em)+1)/2.
//light oj 1236 大数分解素因子
#include
#include
#include
#include
#include
#include
#include
#include
#...
分类:
其他好文 时间:
2015-03-11 23:31:15
阅读次数:
373