zoukankan      html  css  js  c++  java
  • [bzoj1101]Zap

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define N 50001
     4 int t,n,m,k,ans,mu[N],vis[N],p[N];
     5 void mobius(){
     6     mu[1]=1;
     7     for(int i=2;i<N;i++){
     8         if (!vis[i]){
     9             p[++p[0]]=i;
    10             mu[i]=-1;
    11         }
    12         for(int j=1;i*p[j]<N;j++){
    13             vis[i*p[j]]=1;
    14             if (i%p[j])mu[i*p[j]]=-mu[i];
    15             else{
    16                 mu[i*p[j]]=0;
    17                 break;
    18             }
    19         }
    20     }
    21     for(int i=1;i<N;i++)mu[i]+=mu[i-1]; 
    22 }
    23 int main(){
    24     scanf("%d",&t);
    25     mobius();
    26     while (t--){
    27         scanf("%d%d%d",&n,&m,&k);
    28         n/=k;
    29         m/=k;
    30         ans=0;
    31         for(int i=1,j;i<=min(n,m);i=j+1){
    32             j=min(n/(n/i),m/(m/i));
    33             ans+=(mu[j]-mu[i-1])*(n/i)*(m/i); 
    34         }
    35         printf("%d\n",ans);
    36     }
    37 }
    View Code
  • 相关阅读:
    2019年春季学期第三周作业
    第十二周作业
    十一周作业
    第十周作
    第九周作业
    第八周作业
    第七周作业
    第六周作业
    第五周作业
    第四周作业
  • 原文地址:https://www.cnblogs.com/PYWBKTDA/p/11247985.html
Copyright © 2011-2022 走看看