处理何种问题:对于任何一个大于1的自然数num,num可以唯一分解为有限个质数乘积,如:num=的形式。(补充:这里的唯一的意思是在不考虑排列顺序的情况下) 性能:时间复杂度为O(sqrt(num)) 原理:唯一分解定理 实现步骤:类似于素数筛的求素数方法。 备注:当数据量大时建议先用素数筛把素数都 ...
分类:
其他好文 时间:
2018-09-04 20:50:18
阅读次数:
211
1 #include 2 #define ll long long int 3 #define N 20000002 4 using namespace std; 5 int sum[N]; 6 bool an[N]; 7 int bn[N]; 8 int cnt = 0; 9 int t,n; 1... ...
分类:
其他好文 时间:
2018-09-04 14:54:10
阅读次数:
144
题目传送门 Semi-prime H-numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10871 Accepted: 4881 Description This problem is based on an exe ...
分类:
其他好文 时间:
2018-09-02 11:05:08
阅读次数:
184
https://www.jisuanke.com/contest/1555?view=challenges 题意: 题解:写完都没发现是个积性函数233 想法就是对x分解质因数,f(x)就是2^k,其中k是x分解结果中次数为一的质因子个数。如果有某个次数大于等于3,f(x)==0; 这样明显会TLE ...
分类:
其他好文 时间:
2018-09-01 23:48:33
阅读次数:
190
将N!表示成 N! = p1^t1*p2^t2*…pi^ti…*pk^tk(其中p1,p2……pk是素数,1<N<= 10^6) 显然很容易通过素数筛选求出pi,因为1<pi<=N,关键是如何快速地求出ti。 我们先来看一下对于2这个素因子,把N!分成两部分,即奇偶两部分 假设N是偶数 N! =1* ...
分类:
其他好文 时间:
2018-09-01 21:50:12
阅读次数:
207
素数的定义:除了1和它本身之外,不能被其他整数整除。 一、判定一个正整数n是否为素数的方法: ①定义法:枚举2~n-1这n-2个正整数,如果它们均不能整除n,则可断定n为素数。代码如下:时间复杂度为O(n),如果n为10^9,就不能用此方法。 ②从2开始枚举到不大于sqrt(n)的所有正整数,如果它 ...
分类:
其他好文 时间:
2018-08-16 17:45:39
阅读次数:
147
// #include"cstdio" // #include"cstring" // using namespace std; // #define maxn 100000//求maxn范围内的素数 // long long su[maxn],cnt; // bool isprime[maxn];... ...
分类:
其他好文 时间:
2018-07-22 23:31:26
阅读次数:
256
http://lfyzit.com/problem/51 ...
分类:
其他好文 时间:
2018-07-19 21:06:34
阅读次数:
178
今天来玩玩筛 英文:Sieve 有什么筛? 这里介绍:素数筛,欧拉筛,莫比乌斯筛,约数个数筛 为什么要用筛? 顾名思义,筛就是要漏掉没用的,留下有用的。最终筛出来1~n的数的一些信息。 为什么要用线性筛? 考虑最基础的线性筛素数,是O(n)的。 而一般的做法是: 1.对于每个m暴力枚举1~sqrt( ...
分类:
其他好文 时间:
2018-07-02 01:28:52
阅读次数:
142
#include using namespace std; int flag[100000]; void askprime(){ flag[1]=1;//1既不是质数也不是合数 for(int i=2;i<=sqrt(100000);i++)//从1到sqrt(n) { if(flag[i]==0)... ...
分类:
其他好文 时间:
2018-06-29 14:03:17
阅读次数:
144