题意:

如果一个数字是Good Number,当且仅当 ⌊xk⌋\left \lfloor\sqrt[k]{x}\right \rfloor⌊kx​⌋(向下取整) 能整除 x 。

现在给出 n,k ,求 1 到 n 之中Good Number 的个数。

题目:

Alex loves numbers.

Alex thinks that a positive integer x is good if and only if ⌊xk⌋\left \lfloor\sqrt[k]{x}\right \rfloor⌊kx​⌋ divides x.

Can you tell him the number of good positive integers which do not exceed n ?

Input

The first line of the input gives the number of test cases, T (1≤T≤10). T test cases follow.

For each test case, the only line contains two integers n and k (1≤n,k≤10910^{9}109).

Output

For each test cases, output one line containing “Case #x: y”, where x is the test case number (starting from 1), and y is the answer.

Example

Input

2
233 1
233 2

Output

Case #1: 233
Case #2: 43

分析:

1.特判 首先对于 m=1,m>32 判断一下,如果成立直接输出 n ,因为 2322^{32}232>109 ,开根号之后只能是 1 。
2.之后遍历(1~n)的m次方数,接下来操作举例演示:
例如 m=2 ,n=20 ,用 arr 记录 x ,用 brr 记录 xk 。

对于 1~3 之间的数字开根号向下取整为1,故1~3之间的数字都是Good Number。4~8之间的数字开根号都为2,有 8−4=4 个数字(分别是 5,6,7,8) ,其中有2个数字能被2整除,而 4 本身也能被 2 整除。所以对于4~8区间内的Good Number个数为 (8−4)/2+1。同理 9~15 之间的数字开根号都为 3 ,Good Number 个数为 (15−9)/3+1。对于最后的 16~20 ,开根号都为4,所以最后加上 (n−16)/4+1 。

AC代码:

#include<stdio.h>
#include<algorithm>
using namespace std;
typedef long long ll;
int t,k;
ll n,m,ans;
int main(){scanf("%d",&t);k=0;while(t--){scanf("%lld%lld",&n,&m);printf("Case #%d: ",++k);if(m==1)printf("%lld\n",n);else{ans=0;for(ll i=1;i<=n;i++){ll x=i,y=i+1;if(i==1){for(int j=1;j<m;j++){y=y*(i+1);if(y>n) break;}}else{for(int j=1;j<m;j++){x=x*i;y=y*(i+1);if(x>n) break;}}if(x>n) break;x=x-1;y=min(n,y-1);ll tep=y/i-x/i;ans+=y/i-x/i;}printf("%lld\n",ans);}}return 0;
}

Good Number Gym - 102769G 2020年CCPC秦皇岛分站赛相关推荐

  1. Friendly Group Gym - 102769F 2020(并查集)ccpc秦皇岛分站赛

    题意: n个学生要组成一个小组参加会议(可以不参加), 1.对于每两个朋友(x ,y),如果他们俩都参加会议,该小组的友好价值将会增加 1:如果其中只有一位参加会议,则该组的友好价值将降低 1. 3. ...

  2. MUV LUV UNLIMITED(ccpc 秦皇岛2019)

    MUV LUV UNLIMITED(ccpc 秦皇岛2019) 题目描述 There are few entertainments in United Nations 11th Force, Paci ...

  3. CCPC秦皇岛gym102361A. Angle Beats

    CCPC秦皇岛gym102361A. Angle Beats 题意: 给你n个点的坐标,现在有q次询问,每次询问给你一个坐标,问这个坐标可以与给定的n个点组成多少个不同的直角三角形 n<=200 ...

  4. 2020 CCPC 秦皇岛 K. Kingdom‘s Power(树形DP)

    传送门 题目大意 给出一棵根节点为111的树,其中树根上面有无穷的士兵,每分钟我们能调取一队士兵走一条边,如果该节点没有被占领那么会占领该节点,问占领所有节点需要的最少时间. 解题思路 首先要能简单证 ...

  5. 2020 CCPC 秦皇岛 H.Holy Sequence

    我搬运我自己应该算原创吧 题目 题意 题解 题意 对于一个长度为nnn的正整数数列ana_nan​, 他合法的条件是: ∀i∈[1,n],ai∈1,2,-,n\forall i \in [1, n], ...

  6. A Greeting from Qinhuangdao Gym - 102769A 2020ccpc秦皇岛分站赛

    题意: 给你n个红球和m个蓝色球.然后以相等的概率随机选择了其中两个.选择两个红球的概率是多少? 题目: Welcome to the CCPC Qinhuangdao Site! Qinhuangd ...

  7. 2019 CCPC 秦皇岛: MUV LUV EXTRA

    MUV LUV EXTRA (本篇主要内容,kmp求最短循环节) 题目传送门: MUV LUV EXTRA 题意: 给你一个字符串和两个整数a和b.在小数点后,找到一个循环节 l,循环长度为p.求 a ...

  8. 2019 CCPC秦皇岛 K.MUV LUV UNLIMITED(博弈)

    2019CCPC秦皇岛K 题意: 两个人玩游戏, 有一棵有根树,每次只能拿叶子节点若干个(不能不拿),问最后谁会赢 思路: 先说结论,数每个叶子节点对应上去的那条链(直到他的父亲除自己外有另外的儿子结 ...

  9. 2018 CCPC秦皇岛站日记

    三题93名铜前,还可以 9/25 明天就要去秦皇岛了,感觉好,麻烦啊...这里就不激动了,因为要忙好多东西. 首先是我准备了几天的模板,因为第一次比赛的原因,所以我也是第一次准备这种比较正式的模板.除 ...

最新文章

  1. PHP运算符种类很多 主要有,PHP运算符的类别概览
  2. c# vscode 配置_使用VSCode开发C#项目
  3. 捋一捋js面向对象的继承问题
  4. 在anaconda中安装tensorflow-GPU版本
  5. oracle rac alter日志,ORACLE 11G RAC 增加日志组及增大日志文件
  6. laravel支付宝sdk接入
  7. 51单片机4位数乘法C语言,51单片机实现4位数以内的加减法
  8. webpack入坑之旅(一)不是开始的开始
  9. VirtualBox Linux 安装增强工具
  10. Latex 字体调整-斜体-下划线-加粗-罗马数字
  11. 【电脑系统】c盘误操作删除EFI引导分区后,开机一直checking media
  12. Visual Studio中输入英文会在字母之间自动增加空格
  13. Microsoft Teams安装教程
  14. MATLAB最速下降法求解函数极小值
  15. redis数量计算(统计访问量等等)
  16. 前端工作越来越难找,是不是已经饱和了?
  17. 基于UDP的效劳器端和客户端
  18. 《土力学与地基基础(二)》在线平时作业2
  19. 记一次服务器被挖矿木马攻击的经历
  20. 明明白白用Qt5.10编写FTP客户端

热门文章

  1. linux之wget和curl如何携带cookie进行链接访问
  2. linux之errno值为104(connetction reset by peer)
  3. python中lines是什么类型_Python中splitlines()方法的使用简介
  4. java 定时 spring_Spring定时任务实现与配置(一)
  5. python是偏向bs还是cs_CS与BS架构区别、比较、及现状与趋势分析
  6. 手把手教出欧拉!数学界最伟大的老师惨遭全网歪曲抹黑,奇葩说陈铭一句话揭露真相.........
  7. 用一个小球揭开地球的面纱,探索地球运转的秘密!
  8. 你被这些网络迷题难倒过吗?
  9. Oracle常用知识总结
  10. oracle cpu 100%原因,oracle 12.1 cpu 100%