zoukankan      html  css  js  c++  java
  • UvaLive7362 Fare(欧拉函数)

    题意:求1~n的素因子之和。

    分析:欧拉函数

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<cctype>
     4 #include<cstdlib>
     5 #include<cmath>
     6 #include<iostream>
     7 #include<sstream>
     8 #include<iterator>
     9 #include<algorithm>
    10 #include<string>
    11 #include<vector>
    12 #include<set>
    13 #include<map>
    14 #include<deque>
    15 #include<queue>
    16 #include<stack>
    17 #include<list>
    18 #define fin freopen("in.txt", "r", stdin)
    19 #define fout freopen("out.txt", "w", stdout)
    20 #define pr(x) cout << #x << " : " << x << "   "
    21 #define prln(x) cout << #x << " : " << x << endl
    22 typedef long long ll;
    23 typedef unsigned long long llu;
    24 const int INT_INF = 0x3f3f3f3f;
    25 const int INT_M_INF = 0x7f7f7f7f;
    26 const ll LL_INF = 0x3f3f3f3f3f3f3f3f;
    27 const ll LL_M_INF = 0x7f7f7f7f7f7f7f7f;
    28 const double pi = acos(-1.0);
    29 const double EPS = 1e-6;
    30 const int dx[] = {0, 0, -1, 1};
    31 const int dy[] = {-1, 1, 0, 0};
    32 const ll MOD = 1e9 + 7;
    33 const int MAXN = 10000 + 10;
    34 const int MAXT = 10000 + 10;
    35 using namespace std;
    36 int pr[MAXN];
    37 int ps[MAXN];
    38 void init()
    39 {
    40     for(int i = 2; i <= 10000; ++i)
    41     {
    42         int tmp1 = i;
    43         int tmp2 = i;
    44         for(int j = 2; j <= i; ++j)
    45             if(tmp2 % j == 0)
    46             {
    47                 tmp1 = tmp1 / j * (j - 1);
    48                 tmp2 /= j;
    49                 while(!(tmp2 % j))
    50                     tmp2 /= j;
    51             }
    52         pr[i] = tmp1;
    53     }
    54     ps[1] = 2;
    55     for(int i = 2; i <= 10000; ++i)
    56         ps[i] = ps[i - 1] + pr[i];
    57 }
    58 int main()
    59 {
    60     int P;
    61     scanf("%d", &P);
    62     init();
    63     while(P--)
    64     {
    65         int x, n;
    66         scanf("%d%d", &x, &n);
    67         printf("%d %d\n", x, ps[n]);
    68     }
    69     return 0;
    70 }
  • 相关阅读:
    电子邮件为什么要编码以及产生乱码的原因?
    UTF8国际通用为什么还要用GBK?
    python 调用shell命令的方法
    script —— 终端里的记录器
    IP数据报是如何在网络中转发的?
    网际协议:无连接数据报交付(IPv4)
    fork与vfork
    strlen与sizeof有什么区别?
    网络地址到物理地址的映射(ARP)
    分类的因特网地址
  • 原文地址:https://www.cnblogs.com/tyty-Somnuspoppy/p/5971245.html
Copyright © 2011-2022 走看看