• 多功能欧拉筛


    用欧拉筛三合一

    v[i] 表示 i 的最小质因子
    f[i] 表示 i 是不是质数
    prime[i] 表示 第 i 个质数
    phi[i] 表示 i 的欧拉函数值

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    const int MAXN = 10000005;
    int init() {
    	int rv = 0, fh = 1;
    	char c = getchar();
    	while(c < '0' ||c > '9') {
    		if(c == '-') fh = -1;
    		c = getchar();
    	}
    	while(c >= '0' && c <= '9') {
    		rv = (rv<<1) + (rv<<3) + c - '0';
    		c = getchar();
    	}
    	return fh * rv;
    }
    int n, m, v[MAXN], prime[MAXN], cnt, phi[MAXN];
    bool f[MAXN];
    void Euler_chk(){
    	f[1] = 1;v[1] = 1;
    	for(int i = 2 ; i <= n ; i++) {
    		if(!f[i]) {
    			v[i] = i;
    			prime[++cnt] = i;
    			phi[i] = i - 1;
    		}
    		for(int j = 1; i * prime[j] <= n; j++) {
    			f[i * prime[j]] = 1;
    			v[i * prime[j]] = prime[j];
    			if(!(i%prime[j])) {
    				phi[i * prime[j]] = phi[i] * prime[j];
    				break;
    			}
    			phi[i * prime[j]] = phi[i] * (prime[j] - 1);
    		}
    	}
    }
    int main() {
    	n = init(); m = init();
    	Euler_chk();
    	for(int i = 1 ; i <= n ; i++) printf("%d %d
    ", i, phi[i]);
    	for(int i = 1; i <= m ; i++) {
    		if(f[init()]) printf("No
    ");
    		else printf("Yes
    ");
    	}
    	return 0;
    }
    
  • 相关阅读:
    COPY SAP 标准gui状态
    销售类型转换
    SAP数据表相关
    T_CODE I18N
    SAP-Function
    MLGBZ
    爷爷的烟斗
    使用 Composer 查看 FastAdmin 项目 组件的版本
    FastAdmin 后台前端后端组件说明(待续)
    FastAdmin 在 Nginx 中的配置
  • 原文地址:https://www.cnblogs.com/Mr-WolframsMgcBox/p/8515238.html
Copyright © 2020-2023  润新知