zoukankan      html  css  js  c++  java
  • PAT 1015. Reversible Primes

    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <vector>
    
    using namespace std;
    
    void init_primes(vector<char>& primes) {
        int len = primes.size();
        for (int i=0; i<len && i<2; i++) primes[i] = false;
        if (len < 3) return;
        primes[2] = true;
        
        for (int i=2; i<len; i++) {
            if (!primes[i]) continue;
            int v = i * 2;
            while (v < len) {
                primes[v] = false;
                v += i;
            }
        }
        
    }
    
    int inv_value(int n, int radix) {
        int base = 1;
        int v = 0;
        int r = 0;
        vector<int> rs;
        while (n) {
            r = n % radix;
            n = n / radix;
            rs.push_back(r);
        }
        for (int i=rs.size() - 1; i>=0; i--) {
            v += rs[i] * base;
            base *= radix;
        }
        return v;
    }
    
    int main() {
        const int MAX_N = 100000;
        vector<char> primes(MAX_N + 1, true);
        init_primes(primes);
        
        int num, radix;
    
        for (;;) {
            scanf("%d", &num);
            if (num < 0) break;
            scanf("%d", &radix);
            
            if (!primes[num]) {
                printf("No
    ");
                continue;
            }
            int iv = inv_value(num, radix);
            if (!primes[iv]) {
                printf("No
    ");
            } else {
                printf("Yes
    ");
            }
        }
        
        return 0;
    }

    每日一练

  • 相关阅读:
    SVG的引入历程
    Webstorm的常用快捷键
    TypeScript
    Vue Router
    ISO8601
    html5语义化
    删除已有的 HTML 元素
    with(){}方法
    Jquery学习笔记
    css权值问题
  • 原文地址:https://www.cnblogs.com/lailailai/p/4028000.html
Copyright © 2011-2022 走看看