zoukankan      html  css  js  c++  java
  • hdu1695 GCD

    莫比乌斯反演练习题。

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    using namespace std;
    typedef long long ll;
    int T, b, d, a, c, k, mu[100005], pri[100005], cnt;
    bool isp[100005];
    ll ans;
    void shai(){
    	memset(isp, true, sizeof(isp));
    	isp[0] = isp[1] = false;
    	mu[1] = 1;
    	for(int i=2; i<=100000; i++){
    		if(isp[i])	 pri[++cnt] = i, mu[i] = -1;
    		for(int j=1; j<=cnt; j++){
    			if(i*pri[j]>100000)	break;
    			isp[i*pri[j]] = false;
    			if(i%pri[j]==0){
    				mu[i*pri[j]] = 0;
    				break;
    			}
    			mu[i*pri[j]] = -mu[i];
    		}
    	}
    }
    ll getAns(int l, int r){
    	ll tmp=0;
    	for(int i=1; i<=l; i++)
    		tmp += mu[i] * (ll)(l/i) * (ll)(r/i);
    	return tmp;
    }
    int main(){
    	cin>>T;
    	shai();
    	for(int i=1; i<=T; i++){
    		ans = 0;
    		scanf("%d %d %d %d %d", &a, &b, &c, &d, &k);
    		if(k){
    			b /= k; d /= k;
    			ans = getAns(min(b,d), max(b,d)) - getAns(min(b,d), min(b,d))/2;
    		}
    		printf("Case %d: %lld
    ", i, ans);
    	}
    	return 0;
    }
    
  • 相关阅读:
    排序算法(I)冒泡排序
    C#常用类string
    HashMap----工作原理
    Java计算字符串中字母出现的次数
    数据库优化
    线程和进程的区别(详细)
    SpringMVC工作原理
    jsp运行原理及运行过程
    一个公告
    SR
  • 原文地址:https://www.cnblogs.com/poorpool/p/8351322.html
Copyright © 2011-2022 走看看