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
  • 相关阅读:
    Linux JDK安装
    Redis集群搭建
    Struts2 中添加 Servlet
    js小技巧:数组去重
    修改Request 中的数据
    JAVA 图形界面开发基础详解
    JAVA 类和对象基础知识详解
    Java 类的继承详解
    C++ 大学课堂知识点总结
    数据库简单练习 建表+select
  • 原文地址:https://www.cnblogs.com/yijiull/p/7955546.html
Copyright © 2011-2022 走看看