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

    4173: 数学

    Time Limit: 10 Sec  Memory Limit: 256 MB
    Submit: 460  Solved: 226
    [Submit][Status][Discuss]

    Description

     

    Input

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

    Output

     如题

    Sample Input

    5 6

    Sample Output

    240

    HINT

     N,M<=10^15

    Source

    分析:

    $m mod k+n mod k>=k$可以转化为以下的式子...

    $n-left lfloor frac{n}{k} ight floor*k+m-left lfloor frac{m}{k} ight floor*k>=k$

    $n+m-k*( left lfloor frac{n}{k} ight floor+left lfloor frac{m}{k} ight floor )>=k$

    $left lfloor frac{n+m}{k} ight floor-left lfloor frac{n}{k} ight floor-left lfloor frac{m}{k} ight floor>=1$

    也就是$left lfloor frac{n+m}{k} ight floor-left lfloor frac{n}{k} ight floor-left lfloor frac{m}{k} ight floor=1$

    $sum_ {left lfloor frac{n+m}{k} ight floor-left lfloor frac{n}{k} ight floor-left lfloor frac{m}{k} ight floor=1} phi(k)$

    $=sum_ {k=1}^{n+m} phi(k)*leftlfloor frac{n+m}{k} ight floor-sum_ {k=1}^{n} phi(k)*leftlfloor frac{n}{k} ight floor-sum_ {k=1}^{m} phi(k)*leftlfloor frac{m}{k} ight floor$

    然后我们看$sum_ {k=1}^{n} phi(k)*leftlfloor frac{n}{k} ight floor$是什么...

    因为一个数的因子的欧拉函数之和为它本身...所以可以有以下的式子...

    $sum_ {k=1}^{n} phi(k)*leftlfloor frac{n}{k} ight floor=sum_ {i=1}^{n} sum_ {kmid i} phi(k)=sum_ {i=1}^{n} i$

    那么答案就是$phi(n)*phi(m)*n*m$...

    代码:

    #include<algorithm>
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<cmath>
    //by NeighThorn
    #define int long long
    using namespace std;
    
    int n,m,mod=998244353;
    
    inline int phi(int x){
    	int ans=x,y=sqrt(x);
    	for(int i=2;i<=y;i++)
    		if(x%i==0){
    			ans=ans/i*(i-1);
    			while(x%i==0)
    				x/=i;
    		}
    	if(x!=1)
    		ans=ans/x*(x-1);
    	return ans%mod;
    }
    
    signed main(void){
    	scanf("%lld%lld",&n,&m);
    	int ans=phi(n)*phi(m)%mod*(n%mod)%mod*(m%mod)%mod;
    	printf("%lld
    ",ans);
    	return 0;
    }
    

      


    By NeighThorn

  • 相关阅读:
    Activity传递数据
    Java JDK环境变量配置
    Java与IOS日期格式
    第十四篇 ANDROID的 BLUETOOTH 实现机制--中介模式和代理模式
    第十五篇 Android 的Backup服务管理机制--助手模式
    第十八篇 ANDROID的声音管理系统及服务
    使用Unsafe来实现自定义锁
    rabbitMQ实现推迟队列
    简单分布式锁的实现
    [原创]通过切面与分布式锁实现合并相同请求
  • 原文地址:https://www.cnblogs.com/neighthorn/p/6413808.html
Copyright © 2011-2022 走看看