zoukankan      html  css  js  c++  java
  • BZOJ 4173 数学

    题面:

    4173: 数学

    Time Limit: 10 Sec  Memory Limit: 256 MB
    Submit: 602  Solved: 289
    [Submit][Status][Discuss]

    Description

     

    Input

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

    Output

     如题

    Sample Input

    5 6

    Sample Output

    240

    HINT

     N,M<=10^15

    $nquad modquad k+mquad mod quad k>=k$

    等价于 $n-lfloorfrac{n}{k} floor*k+m-lfloorfrac{m}{k} floor*k>=k$

    $lfloorfrac{n+m}{k} floor-lfloorfrac{n}{k} floor-lfloorfrac{m}{k} floor=1$

    $sum_{lfloorfrac{n+m}{k} floor-lfloorfrac{n}{k} floor-lfloorfrac{m}{k} floor=1}phi(k)$

    $=sum_{k=1}^{n+m}phi(k)lfloorfrac{m+n}{k} floor-sum_{k=1}^{n}phi(k)lfloorfrac{n}{k} floor-sum_{k=1}^{m}phi(k)lfloorfrac{m}{k} floor$

    $sum_{k=1}^{n}phi(k)lfloorfrac{n}{k} floor=sum_{k=1}^{n}phi(k)sum_{k|i}^{n}1=sum_{i=1}^{n}sum_{k|i}phi(k)$

    $ecausesum_{k|i}phi(k)=i$

    $ hereforesum_{i=1}^{n}sum_{k|i}phi(k)=sum_{i=1}^{n}i$

    答案就是$phi(n)*phi(m)*n*m$

     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 #define LL long long
     5 const LL mod=998244353;
     6 LL p(LL x)
     7 {
     8     LL ans=x;
     9     for(LL i=2;i*i<=x;i++)
    10         if(x%i==0)
    11         {
    12             ans-=ans/i;
    13             while(x%i==0)
    14                 x/=i;
    15         }
    16     if(x>1)
    17         ans-=ans/x;
    18     return ans;
    19 }
    20 LL n,m;
    21 int main()
    22 {
    23     scanf("%lld%lld",&n,&m);
    24     printf("%lld",(((((p(n)%mod)*(p(m)%mod)))%mod)*(((n%mod)*(m%mod))%mod))%mod);
    25 }
    BZOJ 4173

    感谢lc的**

  • 相关阅读:
    Some bugs in CE6
    WINCE知识点滴
    多个设备共享同一个硬件中断
    磁盘分区详解
    开发串口驱动程序
    CE BSP开发入门之重要的配置文件
    boost pcre Greta RE2 正则表达式性能测试
    Python GIL
    Oracle Instant Client 安装
    C++ 与 python 整数除法差异
  • 原文地址:https://www.cnblogs.com/radioteletscope/p/7181851.html
Copyright © 2011-2022 走看看