You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
4 years ago | |
---|---|---|
.vscode | 4 years ago | |
前缀和 | 4 years ago | |
筛法 | 4 years ago | |
高精度 | 4 years ago | |
.gitignore | 4 years ago | |
LICENSE | 4 years ago | |
README.md | 4 years ago |
README.md
CSP
高精度
- python打表
- 高精加和高精乘
筛法
- 打表
- 素数筛
- 埃氏筛
bool book[100000001];
int prim[2000];
int prn = 0;
// 用埃氏筛法生成质数表
void prime(int b)
{
//初始化,默认全部都是质数
memset(book, true, sizeof(book));
book[1] = false; //1不是质数
int n = sqrt(b); //大于n的合数都被筛了,但是prim里面的素数会变少,看情况用
for (int i = 2; i <= n; i++)
{
if (book[i])
{
prim[prn++] = i;
//质数的倍数绝对不是质数,把所有质数的倍数全部设为false
for (int j = i; j <= b ; j+=i)
book[j] = false; // i*j<=b
}
}
}
- 线性筛
bool book[100000001];
int prim[2000];
int prn = 0;
// 用埃氏筛法生成质数表
void prime(int b)
{
//初始化,默认全部都是质数
memset(book, true, sizeof(book));
book[1] = false; //1不是质数
for (int i = 2; i <= n; i++)
{
if (book[i])
{
prim[prn++] = i;
}
for (int j = 0; j < prn && i * prim[j] < N; j++)
{
book[i * prim[j]] = false; // i*j<=b
if (i % prim[j] == 0)
break;
}
}
}