zoukankan      html  css  js  c++  java
  • Color

    http://poj.org/problem?id=2154

    long long 超时, int 过了。。。

     1 #include <iostream>
     2 #include <cstring>
     3 #include <cmath>
     4 #include <cstdio>
     5 #include <algorithm>
     6 using namespace std;
     7 #define LL long long
     8 int p;
     9 int quickpow(int a, int b, int mod){
    10     int temp = a % mod, res = 1;
    11     while(b){
    12         if(b & 1) res = res * temp % mod;
    13         b >>= 1;
    14         temp = temp * temp % mod;
    15     }
    16     return res;
    17 }
    18 const int maxn = 36010;
    19 int pri[maxn];
    20 int cnt;
    21 void init(){
    22     cnt = 0;
    23     memset(pri, 0, sizeof(pri));
    24     for(int i = 2; i < maxn; i++){
    25         if(!pri[i]){
    26             pri[cnt++] = i;
    27             for(int j = i * i; j < maxn; j += i) pri[j] = 1;
    28         }
    29     }
    30 }
    31 int phi(int n){
    32     int res = n;
    33     for(int i = 0; pri[i] * pri[i] <= n; i++) {
    34         if(n % pri[i] == 0){
    35             res = res - res / pri[i];
    36             while(n % pri[i] == 0) n /= pri[i];
    37         }
    38     }
    39     if(n > 1){
    40         res = res - res / n;
    41     }
    42     return res % p;
    43 }
    44 int main(){
    45     int c, n;
    46     //freopen("in.txt", "r", stdin);
    47     int t;
    48     init();
    49     scanf("%d", &t);
    50     while(t--){
    51         scanf("%d %d", &n, &p);
    52         int ans = 0;
    53         c = n;
    54         for(int i = 1 ; i * i <= n; i++){
    55             if(i * i == n) ans = (ans + quickpow(c, i - 1, p) * phi(i)) % p;
    56             else if(n % i == 0){
    57                 ans = (ans + quickpow(c, i - 1, p) * phi(n / i) + quickpow(c, n / i - 1, p) * phi(i)) % p;
    58             }
    59         }
    60         printf("%d
    ", ans);
    61     }
    62 }
    View Code
  • 相关阅读:
    javascript修改浏览器title方法 JS动态修改浏览器标题
    input type="checkbox" 选中传值,不选中传值的方法讲解
    关闭控制台的自动切换按钮
    mac切图
    charles
    apache
    超级经典的HTTP协议讲解
    一个很有趣的算法
    移动端网络判断
    移动端1px细线的处理
  • 原文地址:https://www.cnblogs.com/yijiull/p/7955546.html
Copyright © 2011-2022 走看看