• bzoj3309DZY Loves Math


    3309: DZY Loves Math

    Time Limit: 20 Sec  Memory Limit: 512 MB
    Submit: 1240  Solved: 777
    [Submit][Status][Discuss]

    Description

    对于正整数n,定义f(n)为n所含质因子的最大幂指数。例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007)=1, f(1)=0。
    给定正整数a,b,求sigma(sigma(f(gcd(i,j)))) (i=1..a, j=1..b)。

    Input

    第一行一个数T,表示询问数。
    接下来T行,每行两个数a,b,表示一个询问。

    Output

    对于每一个询问,输出一行一个非负整数作为回答。

    Sample Input

    4
    7558588 9653114
    6514903 4451211
    7425644 1189442
    6335198 4957

    Sample Output

    35793453939901
    14225956593420
    4332838845846
    15400094813

    HINT

    【数据规模】

    T<=10000

    1<=a,b<=10^7

     1 #include<bits/stdc++.h>
     2 #define rint register int
     3 #define N 10000001
     4 using namespace std;
     5 int cnt,sum[N],a[N],b[N],p[N>>1],vis[N];
     6 
     7 int main(){
     8     for(rint i=2;i<N;++i){
     9         if(!vis[i]){p[++cnt]=i;a[i]=sum[i]=1;b[i]=i;}
    10         for(rint j=1;j<=cnt&&p[j]*i<N;++j){
    11             static int k,t;k=p[j]*i;vis[k]=1;
    12             if(i%p[j]){a[k]=1;b[k]=p[j];sum[k]= a[i]==1?-sum[i]:0;}
    13             else{
    14                 a[k]=a[i]+1;b[k]=b[i]*p[j];t=i/b[i];
    15                 if(t==1)sum[k]=1;else sum[k]= a[t]==a[k]?-sum[t]:0;
    16                 break;
    17             }
    18         }
    19     }
    20     for(rint i=1;i<N;++i)sum[i]+=sum[i-1];
    21     int T,n,m,pos;long long ans;scanf("%d",&T);
    22     for(rint c=1;c<=T;++c){
    23         scanf("%d%d",&n,&m);
    24         if(n>m)swap(n,m);ans=0;
    25         for(rint i=1;i<=n;i=pos+1){
    26             pos=min(n/(n/i),m/(m/i));
    27             ans+=1ll*(n/i)*(m/i)*(sum[pos]-sum[i-1]);
    28         }
    29         printf("%lld
    ",ans);
    30     }
    31     return 0;
    32 }
  • 相关阅读:
    Android点击按钮退出程序并提醒
    Android项目如何打包成安装包.apk
    java之String字符串根据指定字符转化为字符串数组
    2021春季开课 课程计划
    Android:Unable to find explicit activity class报错
    不用写findViewById的偷懒方法
    人月神话阅读笔记03
    人月神话阅读笔记02
    javaweb验证码
    疫情地图展示
  • 原文地址:https://www.cnblogs.com/wsy01/p/8324697.html
Copyright © 2020-2023  润新知