把k的倍数的删去(k, 2k, 3k……),但是k^2不应该删去,因为k已经删去,所以不存在某个数乘上k之后为k^2

所以k^2可以留下,然后因为有k^2,所以k^3就是k^2的k倍,所以k^3要删去,但是k^4又要加回来,以此类推

ans = n - n / k + n / (k^2) - n / (k^3)……

见代码

#include<cstdio>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std; int solve(int n, int k)
{
int sign = 1, ans = 0;
while(n)
{
ans += sign * n;
n /= k;
sign *= -1;
}
return ans;
} int main()
{
int n, k, T;
scanf("%d", &T);
while(T--)
{
scanf("%d%d", &n, &k);
printf("%d\n", solve(n, k));
}
return 0;
}

最新文章

  1. 标准产品+定制开发:专注打造企业OA、智慧政务云平台——山东森普软件,交付率最高的技术型软件公司
  2. Google C++单元测试框架---Gtest框架简介(译文)
  3. Android入门(四):链接接口组件和程序代码
  4. px与rem关系及转换
  5. Android SDK代理服务器解决国内Android SDK不能更新下载问题
  6. 自动插入数据sql
  7. [设计模式]第三回:抽象工厂模式(Abstract Factory)
  8. ZeroMQ(java)中组件间数据传输(Pipe的实现)
  9. csu oj 1339: 最后一滴血
  10. awk用法小结(作者总结)
  11. linux 的开机启动脚本顺序
  12. C#开源系统大汇总(转)
  13. Const和ReadOnly区别及其用途--转载
  14. [原 -&gt; 砖] C# IEnumerable&lt;T&gt;泛型取值
  15. linux进程后台运行的几种方法
  16. Bluetooth LE(低功耗蓝牙) - 第二部分
  17. Android:创建可穿戴应用 - 自定义布局
  18. CentOs Linux 常见命令
  19. 《java入门第一季》之面向对象(抽象类其实不抽象)
  20. 高程小tips

热门文章

  1. hadoop-03-安装java
  2. Sql中把datetime转换成字符串(CONVERT)
  3. so near yet so far
  4. Android SQLite 简单使用演示样例
  5. BZOJ4259: 残缺的字符串 &amp; BZOJ4503: 两个串
  6. poj--3620--Avoid The Lakes(dfs)
  7. hpuoj--校赛--与学妹滑雪(最短路+精度判断)
  8. [HNOI2012] 永无乡 解题报告 (splay+启发式合并)
  9. Android Button 按钮 设置 各种状态 图片 颜色
  10. Python 从入门到精通 全程最佳实现梳理