• HDU 2421


    由算术基本定理N=p1^e1*p2^e2....ps^es,可知一个素的因子个数为(e1+1)*(e2+1)*...*(es+1)。

    而N的一人因子必定也有n=p1^k1*p2^k2。。。。*ps^ks的形式。因子个数形式同上。

    而事实上,即是从ei中选取其中一些来充当k1。那么,所有的因子的个数之和必定是(1+2+...e1+1)*(1+2....e2+1)*...其实即是拆开相乘,相当于有各种组合。而

    立方是积性的,所以先把(1^3+2^3+....(e1+1)^3)*(1^3+......)*.......

    有公式

    1^3+2^3+3^3+...+n^3=(1+2+3+...+n)^2

     

    题目可解。

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cmath>
    #define LL __int64
    using namespace std;
    int pe[1000],np;
    const LL MOD=10007;
    int main(){
    	int a,b;
    	int kase=0;
    	while(scanf("%d%d",&a,&b)!=EOF){
    		np=0;
    		for(int i=2;i*i<=a;i++){
    			if(a%i==0){
    				int c=0;
    				while(a%i==0){
    					 c++;
    					 a/=i;
    				}
    				pe[np++]=c*b;
    			}
    		}
    		if(a>1){
    			pe[np++]=1*b;
    		}
    		LL ans=1;
    		for(int i=0;i<np;i++){
    			LL tmp=((((LL)2+(LL)pe[i]))*((LL)pe[i]+(LL)1)/2)%MOD;
    			ans=(ans*((tmp*tmp)%MOD))%MOD;
    		}
    		printf("Case %d: %I64d
    ",++kase,ans);
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    类与对象
    《大道至简》第三章读后感
    动手动脑及课后作业
    课程作业一
    第三周学习进度条
    软件工程个人作业02
    第二周学习进度条
    软件工程个人作业01(2)
    软件工程个人作业01
    登录界面
  • 原文地址:https://www.cnblogs.com/jie-dcai/p/3970377.html
Copyright © 2020-2023  润新知