zoukankan      html  css  js  c++  java
  • BZOJ2693

    http://www.lydsy.com/JudgeOnline/problem.php?id=2693

    #include<cstdio>
    typedef unsigned long long ll;
    inline int min(int a,int b){
    	return a<b?a:b;
    }
    ll ans,rev;
    const int maxn=1e7;
    const ll mod=1e8+9;
    int pr[maxn];
    bool ip[maxn+1];
    ll f[maxn+1];
    int n,m;
    int T;
    inline void shai_fa(){
    	f[1]=1ll;
    	for(register int i=2;i<=maxn;++i){
    		if(!ip[i])
    			f[pr[++pr[0]]=i]=mod-i+1;
    		for(register int j=1;j<=pr[0]&&1ll*pr[j]*i<=maxn;++j){
    			ip[i*pr[j]]=1;
    			if(i%pr[j]==0){
    				f[i*pr[j]]=f[i];
    				break;
    			}
    			f[i*pr[j]]=1ll*f[i]*f[pr[j]]%mod;
    		}
    	}
    	for(register int i=2;i<=maxn;++i)
    		f[i]=(1ll*f[i]*i%mod+1ll*f[i-1])%mod;
    }
    inline ll fp(ll a,ll b){
    	ll ret=1ll;
    	while(b){
    		if(b&1ll)ret=1ll*ret*a%mod;
    		b>>=1ll;
    		a=1ll*a*a%mod;
    	}
    	return ret;
    }
    int main(){
    	shai_fa();
    	scanf("%d",&T);
    	while(T--){
    		scanf("%d%d",&n,&m);
    		ans=0;
    		for(register int i=1,pos;i<=min(n,m);i=pos+1){
    			pos=min(n/(n/i),m/(m/i));
    			ans=(ans+1ll*(1ll*(n/i+1)*(n/i)/2)%mod*(1ll*(m/i+1)*(m/i)/2%mod)%mod*(f[pos]-f[i-1]+mod)%mod)%mod;
    		}
    		printf("%lld
    ",ans);
    	}
    	return 0;
    } 
    

      

  • 相关阅读:
    sed附加命令
    01_Mac下安装homebrew
    02_linux常用指令
    18_Condition条件
    01.IDEA常用快捷键
    17_重入锁ReentrantLock
    秒杀系统架构分析与实战--转载
    16_Queue_利用wait()和notify()编写一个阻塞队列
    15_volatile
    14_synchronized深入
  • 原文地址:https://www.cnblogs.com/Stump/p/8081722.html
Copyright © 2011-2022 走看看