min25筛,可以用来求积性函数前缀和。 这个函数要求,$f(p^x)$能表示为关于$p^x$的一个多项式。 算法分两步: 1.求出所有质数的f和。 方法如下: 首先,把所有数当成质数代入多项式,求出一个“假的”前缀和。 然后,通过埃氏筛法,将非质数除去。 每次,当筛质数$P_x$时,将最小质因数大 ...
分类:
其他好文 时间:
2019-12-13 23:48:53
阅读次数:
110
简要整理一下第一章中比较有趣的内容 1.筛法: Eratosthenes筛法 原理:从2开始,没有被筛掉的数一定是质数,因为它不被任何小于它的素数整除,再用它的整数倍筛掉后面的数 更加高效的方法是线性筛 原理:让每一个合数被自己最大的真因子筛掉,反过来,也就是当我们碰到一个数x时,能用它筛掉哪些数呢 ...
分类:
其他好文 时间:
2019-12-12 01:34:00
阅读次数:
107
#include<bits/stdc++.h> using namespace std; #define maxn 40 int prime[maxn]; int visit[maxn]; void Prime(){//埃氏筛法 memset(visit,0,sizeof(visit)); //初始 ...
分类:
其他好文 时间:
2019-12-07 14:48:28
阅读次数:
102
1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 int t; 5 bool a[101]; 6 int main() 7 { 8 memset(a, 1, sizeof(a)); 9 a[1] = false; 10 f ...
分类:
其他好文 时间:
2019-12-05 20:31:39
阅读次数:
102
用筛法求出100以内的全部素数,并按每行五个数显示 从1开始每次判断一个数是否为素数,如果为素数,就把所有能被这个数整除的数排除,即不是素数 首先是一个判断素数的函数 1 bool sushu(int x) 2 { 3 if (x==2) 4 return true; 5 for (int i = ...
分类:
其他好文 时间:
2019-12-05 20:24:06
阅读次数:
117
一:判定质数 要判断一个数是不是质数,只需遍历小于等于它的所有数,如果它能被除了1和本身之外的数整除,那么它就不是质数。 很简单,暴力枚举,代码如下: 1 bool is_prime(int x) 2 { 3 if (x < 2) return false; 4 for (int i = 2; i ...
分类:
其他好文 时间:
2019-11-28 11:48:52
阅读次数:
80
运行环境masm6.11 复杂度大概是$O(n\log n)$吧 ...
分类:
其他好文 时间:
2019-11-21 22:49:52
阅读次数:
72
转眼就快联赛了,把筛法总结一下吧。 目前会的只有三个,埃筛,线筛,杜教筛。 怎么说这个东西。其实非常灵活。 首先我们知道筛法大多数用来筛积性函数,所以而积性函数和质数关系很大,所以先说一下怎么筛质数吧。 1.质数筛 $fr.$根号$n$暴力判断。 相当与在枚举因数,如果这个数没有非平凡因子($n$除 ...
分类:
其他好文 时间:
2019-11-04 13:28:49
阅读次数:
95
链接: https://vjudge.net/problem/POJ 2689 题意: The branch of mathematics called number theory is about properties of numbers. One of the areas that has c ...
分类:
其他好文 时间:
2019-11-03 23:36:52
阅读次数:
94
简单整理推导加代码,留复习用。 线性筛素数 最简单也最基础,直接看代码就好了$……$ code: cpp void Euler_Phi_Prime(int n) { is_prime[1] = true; for (int i = 2; i ...
分类:
其他好文 时间:
2019-10-25 13:37:53
阅读次数:
91