筛素数和欧拉函数的模板

来源:互联网 发布:免费html游戏网站源码 编辑:程序博客网 时间:2024/06/05 20:55
/*******************************************************************************素数+欧拉函数表 prime[]存素数 phi[]存欧拉函数*******************************************************************************/const int size = 3000010;int phi[size], prime[size];bool check[size];void excelphi() {memset(check, false, sizeof(check));phi[1] = 1;int tot = 0;for (int i = 2; i <= size; i++) {if (!check[i]) {prime[tot++] = i;phi[i] = i - 1;}for (int j = 0; j < tot; j++) {if (i * prime[j] > size) break;check[i*prime[j]] = true;if (i % prime[j] == 0) {phi[i*prime[j]] = phi[i]*prime[j];break;} else {phi[i*prime[j]] = phi[i]*(prime[j] - 1);}}}}


原创粉丝点击