zoukankan      html  css  js  c++  java
  • [bzoj2820]YY的GCD

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define N 10000001
     4 int t,n,m,k,mu[N],vis[N],p[N];
     5 long long ans,f[N];
     6 void linear(){
     7     mu[1]=1;
     8     for(int i=2;i<N;i++){
     9         if (!vis[i]){
    10             p[++p[0]]=i;
    11             mu[i]=-1;
    12             f[i]=1;
    13         }
    14         for(int j=1;i*p[j]<N;j++){
    15             vis[i*p[j]]=1;
    16             if (i%p[j]){
    17                 mu[i*p[j]]=-mu[i];
    18                 f[i*p[j]]=mu[i]-f[i];
    19             }
    20             else{
    21                 mu[i*p[j]]=0;
    22                 f[i*p[j]]=mu[i];
    23                 break;
    24             }
    25         }
    26     }
    27     for(int i=1;i<N;i++)f[i]+=f[i-1];
    28 }
    29 int main(){
    30     scanf("%d",&t);
    31     linear();
    32     while (t--){
    33         scanf("%d%d",&n,&m);
    34         if (n>m)swap(n,m);
    35         ans=0;
    36         for(int i=1,j;i<=n;i=j+1){
    37             j=min(n/(n/i),m/(m/i));
    38             ans+=(f[j]-f[i-1])*(n/i)*(m/i);
    39         }
    40         printf("%lld\n",ans);
    41     }
    42 }
    View Code
  • 相关阅读:
    POJ 1936 All in All
    POJ 2305 Basic remains
    POJ 2081 Recaman's Sequence
    MFC MDI 窗口函数执行顺序
    decompose
    不新建一个文档
    code mistake
    ...
    paper
    stereo
  • 原文地址:https://www.cnblogs.com/PYWBKTDA/p/11249730.html
Copyright © 2011-2022 走看看