news 2026/5/23 9:55:08

打卡信奥刷题(3304)用C++实现信奥题 P9118 [春季测试 2023] 幂次

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(3304)用C++实现信奥题 P9118 [春季测试 2023] 幂次

P9118 [春季测试 2023] 幂次

题目描述

小 Ω 在小学数学课上学到了“幂次”的概念:∀a,b∈N+\forall a, b \in \N^+a,bN+,定义aba^babbbbaaa相乘。

她很好奇有多少正整数可以被表示为上述aba^bab的形式?由于所有正整数m∈N+m \in \N^+mN+总是可以被表示为m1m^1m1的形式,因此她要求上述的表示中,必须有b≥kb \geq kbk,其中kkk是她事先选取好的一个正整数。

因此她想知道在111nnn中,有多少正整数xxx可以被表示为x=abx = a^bx=ab的形式,其中a,ba, ba,b都是正整数,且b≥kb \geq kbk

输入格式

第一行包含两个正整数n,kn, kn,k,意义如上所述。

输出格式

输出一行包含一个非负整数表示对应的答案。

输入输出样例 #1

输入 #1

99 1

输出 #1

99

输入输出样例 #2

输入 #2

99 3

输出 #2

7

输入输出样例 #3

输入 #3

99 2

输出 #3

12

说明/提示

【样例 2 解释】

以下是全部777组符合题意的正整数及对应的一种合法的表示方法。

1=13,8=23,16=24,27=33,32=25,64=43,81=341 = 1^3, 8 = 2^3, 16 = 2^4, 27 = 3^3, 32 = 2^5, 64 = 4^3, 81 = 3^41=13,8=23,16=24,27=33,32=25,64=43,81=34

注意某些正整数可能有多种合法的表示方法,例如646464还可以表示为64=2664 = 2^664=26

但根据题意,同一个数的不同的合法表示方法只会被计入一次。

【样例 3 解释】

以下是全部121212组符合题意的正整数及对应的一种合法的表示方法。

1=12,4=22,8=23,9=32,16=42,25=52,27=33,32=25,36=62,49=72,64=82,81=921 = 1^2, 4 = 2^2, 8 = 2^3, 9 = 3^2, 16 = 4^2, 25 = 5^2, 27 = 3^3, 32 = 2^5, 36 = 6^2, 49 = 7^2, 64 = 8^2, 81 = 9^21=12,4=22,8=23,9=32,16=42,25=52,27=33,32=25,36=62,49=72,64=82,81=92

【样例 4】

见选手目录下的 power/power4.in 与 power/power4.ans。

【样例 5】

见选手目录下的 power/power5.in 与 power/power5.ans。

【样例 6】

见选手目录下的 power/power6.in 与 power/power6.ans。

【数据范围】

对于所有数据,保证1≤n≤10181 \leq n \leq 10^{18}1n10181≤k≤1001 \leq k \leq 1001k100

测试点编号n≤n \lenkkk
110210^2102=1=1=1
210210^2102≥2\ge 22
310410^4104≥3\ge 33
410410^4104≥2\ge 22
510610^6106≥3\ge 33
610610^6106≥2\ge 22
710810^8108≥3\ge 33
810810^8108≥2\ge 22
9101010^{10}1010≥3\ge 33
10101010^{10}1010≥2\ge 22
11101210^{12}1012≥3\ge 33
12101210^{12}1012≥2\ge 22
13101410^{14}1014≥3\ge 33
14101410^{14}1014≥2\ge 22
15101610^{16}1016≥3\ge 33
16101610^{16}1016≥2\ge 22
17101810^{18}1018≥3\ge 33
18101810^{18}1018≥2\ge 22
19101810^{18}1018≥2\ge 22
20101810^{18}1018≥2\ge 22

C++实现

#include<bits/stdc++.h>usingnamespacestd;#definelllonglongmap<ll,bool>mp;ll x,cnt;voidsolve(ll n,ll k){for(ll i=2;i*i*i<=n;i++){ll t=i*i,m=2;while(t<=n/i){t*=i,m++;if(m<k)continue;if(mp[t])continue;if((ll)sqrtl(t)*sqrtl(t)==t)x++;mp[t]=1,cnt++;}}}intmain(){ll n,k;cin>>n>>k;solve(n,k);if(k==1)cout<<n;elseif(k>=3)cout<<cnt+1;elsecout<<(ll)sqrtl(n)+cnt-x;return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 9:53:08

Meta-Typing完全指南:TypeScript类型级编程的艺术与科学

Meta-Typing完全指南&#xff1a;TypeScript类型级编程的艺术与科学 【免费下载链接】meta-typing &#x1f4da; Functions and algorithms implemented purely with TypeScripts type system 项目地址: https://gitcode.com/gh_mirrors/me/meta-typing 你是否想过&…

作者头像 李华
网站建设 2026/5/23 9:51:17

Free NTFS for Mac:彻底解决macOS NTFS读写限制的终极方案

Free NTFS for Mac&#xff1a;彻底解决macOS NTFS读写限制的终极方案 【免费下载链接】Free-NTFS-for-Mac Nigate: An open-source NTFS utility for Mac. It supports all Mac models (Intel and Apple Silicon), providing full read-write access, mounting, and managemen…

作者头像 李华
网站建设 2026/5/23 9:50:02

本centOS 10 机器所安装的数据库

方案三&#xff1a;考虑使用系统自带的 MySQL 版本检查 CentOS Stream 10 默认的 AppStream 仓库中是否提供了 MySQL 或其他变体&#xff08;如 MariaDB&#xff09;。这些版本会与系统完美兼容。sudo dnf module list mysql sudo dnf install -y mysql:8.0 # 如果可用 # 或者…

作者头像 李华
网站建设 2026/5/23 9:49:04

Honey Select 2终极增强指南:5步完成完整汉化与插件整合

Honey Select 2终极增强指南&#xff1a;5步完成完整汉化与插件整合 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF_Patch是《Honey Select 2》玩家的必…

作者头像 李华