• BZOJ 4173: 数学


    4173: 数学

    Time Limit: 10 Sec  Memory Limit: 256 MB
    Submit: 462  Solved: 227
    [Submit][Status][Discuss]

    Description

     

    Input

     输入文件的第一行输入两个正整数 。 

    Output

     如题

    Sample Input

    5 6

    Sample Output

    240

    HINT

     N,M<=10^15

    Source

     
    [Submit][Status][Discuss]

    据说单个欧拉函数$phi(N)$可以在$O(sqrt{N})$的时间内求出来,所以只关心$sum_{kin S(n,m)}{phi{k}}$是什么。看下PoPoQQQ。

    n%k+m%kk等价于n+mknkmk=1 
    无视掉前面的
    φ(n)φ(m)的话答案就是 
    n%k+m%kkφ(k)
     
    =n+mk=1φ(k)n+mknk=1φ(k)nkmk=1φ(k)mk

    那么nk=1φ(k)nk又是什么呢? 
    ni=1i=ni=1k|
    iφ(k)=nk=1φ(k)nk

    因此答案为φ(n)φ(m)(n+mi=1ini=1imi=1i)=φ(

     1 #include <cstdio>
     2 
     3 typedef long long lnt;
     4 
     5 __inline lnt phi(lnt n)
     6 {
     7     lnt r = n;
     8     
     9     for (lnt i = 2; i*i <= n; ++i)
    10         if (n % i == 0)
    11         {
    12             r = (r / i) * (i - 1);
    13             while (n % i == 0)n /= i;
    14         }
    15         
    16     if (n != 1)r = (r / n) * (n - 1);
    17     
    18     return r;
    19 }
    20 
    21 const lnt mod = 998244353LL;
    22 
    23 lnt n, m;
    24 
    25 signed main(void)
    26 {
    27     scanf("%lld%lld", &n, &m);
    28     printf("%lld
    ", 
    29         ((phi(n) % mod) * (phi(m) % mod) % mod)
    30     *    ((n % mod) * (m % mod) % mod) % mod);
    31 }

    @Author: YouSiki

  • 相关阅读:
    java集合的简单用法
    数据结构
    数据结构
    数据结构
    数据结构
    软件工程第三次作业
    软件工程第三次作业
    软件工程第三次作业
    软件工程第三次作业
    Linux 开发之线程条件锁那些事
  • 原文地址:https://www.cnblogs.com/yousiki/p/6413892.html
Copyright © 2020-2023  润新知