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.
 
 
徐涛 7614a5c33a
second
4 years ago
.vscode second 4 years ago
前缀和 second 4 years ago
筛法 second 4 years ago
高精度 second 4 years ago
.gitignore Initial commit 4 years ago
LICENSE Initial commit 4 years ago
README.md second 4 years ago

README.md

CSP

高精度

  1. python打表
  2. 高精加和高精乘

筛法

  1. 打表
  2. 素数筛
    1. 埃氏筛
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
        }
    }
}
  1. 线性筛
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;
        }
    }
}