zoukankan      html  css  js  c++  java
  • BZOJ1968: [Ahoi2005]COMMON 约数研究 线性筛

    按照积性函数的定义筛一下这个积性函数即可. 

    #include <cstdio> 
    #include <algorithm>    
    #define N 1000004 
    #define setIO(s) freopen(s".in","r",stdin) 
    using namespace std;  
    int tot; 
    int f[N],prime[N],vis[N],sum[N];
    int main() 
    { 
        //setIO("input");  
        int n,i,j; 
        scanf("%d",&n);   
        sum[1]=f[1]=1; 
        for(i=2;i<=n;++i) 
        { 
            if(!vis[i]) prime[++tot]=i,f[i]=2;   
            for(j=1;j<=tot&&1ll*i*prime[j]<=1ll*n;++j)  
            {
                vis[i*prime[j]]=1;
                if(i%prime[j]==0) 
                { 
                    int h=i; 
                    for(;h%prime[j]==0;h/=prime[j]); 
                    f[i*prime[j]]=f[h]+f[i]; 
                    break;
                }
                else 
                {
                    f[i*prime[j]]=f[i]*f[prime[j]];
                }
            }
            sum[i]=sum[i-1]+f[i];
        }
        printf("%d
    ",sum[n]); 
        return 0; 
    }
    

      

  • 相关阅读:
    厂商前缀
    文本阴影和边框阴影
    2D转换
    overflow属性
    margin属性
    CSS圆角边框
    浮动定位
    文档流定位
    position属性
    选择器二
  • 原文地址:https://www.cnblogs.com/guangheli/p/11491101.html
Copyright © 2011-2022 走看看