给定A,B,对于A^B的每一个因子,M为其因子的因子数的三次方求和。

容易推导得出A^B的每一个因子都是A的质因子的组合(质因子可重复利用),其因子数自然等于所使用的每个质因子的数量乘积。

假设A由质因子a1,a2,a3组合而成,对应数量为k1,k2,k3,那么A的因子数为(k1+1)*(k2+1)*(k3+1),同理A的因子的因子数为(k1+1)*(k2+1)*k3+1,(k1+1)*k2*(k3+1),k1*(k2+1)*(k3+1),(k1+1)*k2*k3以此类推。

我们可以发现其为(1+2+3...k1+1)*(1+2+3...k2+1)*(1+2+3...k3+1)的展开。对于这里的每一项,我们可以用求和公式(n*(n+1)/2)^2来求解。

对于拆解一个数的质因数,我们只需要枚举到srqt(n)即可,因为至多只有一个质因数大于sqrt(n) n不断做除法剩下的数即是这个质因数,如果有两个质因数x1,x2大于sqrt(n),那一定有n>=x1*x2与x1>sqrt(n) x2>sqrt(n)相悖。

#include <iostream>
#include <cstring>
#include <string>
#include <queue>
#include <vector>
#include <map>
#include <set>
#include <stack>
#include <cmath>
#include <cstdio>
#include <algorithm>
#define LL long long
using namespace std;
const LL N = 1000005;
const LL mod = 10007;
LL cube(LL num)
{return (num*(num + 1) / 2)%mod*(num*(num + 1) / 2);
}
vector<LL> su;
bool vis[N];
int main() {//cin.sync_with_stdio(false);
    LL a,b;fill(vis, vis + N, true);vis[0] = vis[1] = false;for(LL i=2;i<N;i++)if (vis[i]){su.push_back(i);for (LL j = i * 2; j < N; j *= i)vis[i] = false;}int cas = 1;while (scanf("%lld%lld",&a,&b)!=EOF){map<LL, LL> mp;for (LL i = 0; i < su.size() && su[i]*su[i] <= a; i++){while (a%su[i] == 0)cout << su[i] << endl, mp[su[i]]++, a /= su[i];}if (a > 1)mp[a]++;LL ans = 1;for (map<LL, LL>::iterator it = mp.begin(); it != mp.end(); it++){it->second *= b, it->second++;it->second %= mod;//cout << it->second << endl;ans *= cube(it->second);ans %= mod;}printf("Case %d: %lld\n", cas++, ans);//cout << "Case " << cas++<<": ";//cout << ans << endl;
}return 0;
}

转载于:https://www.cnblogs.com/LukeStepByStep/p/7452281.html

hdu-2421 Deciphering Password 数学姿势相关推荐

  1. HDU——1013(字符串+数学)Digital Roots

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1013 题意:给你一个整数列表,让位数上的数相加得到一个新的数,若为个位数则输出,若不为个位数重复此操作 ...

  2. HDU 4611 Balls Rearrangement 数学

    Balls Rearrangement 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=4611 Description Bob has N balls ...

  3. HDU 5985 Lucky Coins 数学

    Lucky Coins 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5985 Description Bob has collected a lot ...

  4. hdu 5312 Sequence(数学推导——三角形数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5312 Sequence Time Limit: 2000/2000 MS (Java/Others)  ...

  5. HDU 6217 BBP Formula (数学)

    题目链接: HDU 7217 题意: 题目给你可以计算 \(π\) 的公式: \(\pi = \sum_{k=0}^{\infty}[\frac{1}{16^k}(\frac{4}{8k+1})-(\ ...

  6. HDU - 2825 Wireless Password (AC自动机 + 状压dp)

    题目链接 题意 求至少包含KKK个给定字符串长度为NNN的字符串 思路 把所有可能的字符串建AC自动机,遍历所有节点dp[i][j][k]dp[i][j][k]dp[i][j][k] 表示以节点jjj ...

  7. HDU - 6641 TDL(数学)

    Problem Description For a positive integer n, let's denote function f(n,m) as the m-th smallest inte ...

  8. hdu 2825 Wireless Password AC自动机+状态DP

    时间卡得紧,写成递推可以做一些优化 //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cs ...

  9. HDU - 2825 Wireless Password(AC自动机+状压dp)

    题目链接:点击查看 题目大意:给出 m 个匹配串,问长度为 n 的字符串中,至少包含 k 个匹配串(可重叠)的字符串有多少个 题目分析:考虑到n,m,k都特别小,所以可以先用AC自动机将状态关系转移出 ...

最新文章

  1. Annotataion
  2. 获取Executor提交的并发执行的任务返回结果的两种方式/ExecutorCompletionService使用...
  3. Chord算法实现具体
  4. /etc/ld.so.conf.d/目录下文件的作用
  5. python输出日志到文件_【已解决】Python中,如何让多个py文件的logging输出到同一个日志log文件...
  6. flink中的java匿名函数修改为实名函数
  7. 一个屌丝程序猿的人生(七十七)
  8. opencv-api SIFT_create()
  9. GitHub详解(转)
  10. 电脑硬件检测软件排名列前茅:试试整合了当下最好的硬件检测软件的图吧工具箱吧 | 图吧工具箱在哪里下载
  11. git 本地拉取远程分支、合并分支某次提交、删除远程分支提交日志
  12. 【信号用指数、正弦和余弦表示的原因】
  13. 【车间调度】柔性作业车间调度问题的研究方法
  14. 上位机开发之三菱Q系列PLC通信实践
  15. 勒索病毒肆虐的原因分析
  16. kafka sasl java_Kafka安装及开启SASL_PLAINTEXT认证(用户名和密码认证)
  17. 【HTML5】网页实用技巧3:将方形图片设置成圆形后,添加圆形虚线边框
  18. 文献管理软件Mendeley Reference Manager使用方法
  19. 计算机毕业设计 SSM在线电影售票系统(源码+论文)
  20. c#windows编程视频教程

热门文章

  1. laravel操作$request中值删除、增加、替换等方式的代码实例
  2. thinkphp3.2.3版本的数据库增删改查实例
  3. c语言黄建灯第七章答案,c语言实训大纲.doc
  4. python交通流预测代码_使用ARIMA模型进行的短时交通流预测和结果分析
  5. Python笔记-对字符串进行URL编码及解码
  6. 云主机开放端口笔记-mysql远程连接需要的步骤
  7. Java笔记-多线程相关
  8. 系统架构工作笔记-数据展示进程与读取数据进程分离,实现低耦合(展示软件可适用任意厂家数据库)
  9. Qt文档阅读笔记-对Style Plugin Example实例的解析
  10. 单片机自动调光C语言,51单片机触控调光程序C语言