本文共 914 字,大约阅读时间需要 3 分钟。
给出 n n n,求 [ 1.. n ] [1..n] [1..n]中有多少个数可以被 a b ( b > 1 ) a^b(b>1) ab(b>1)表示
首先如果 b b b等于 2 2 2,那么可以被表示的数就是 n \sqrt n n个
b b b不是质数时,显然所以的数都可以被一个 b b b是质数的情况表示。
当 b b b大于等于三时, a a a的个数级别不超过 1 0 6 10^6 106,所以我们枚举后面的数。
需要考虑重复如 4 3 = 8 2 4^3=8^2 43=82,其实这个重复本质上就是 ( 2 2 ) 3 = ( 2 3 ) 2 (2^2)^3=(2^3)^2 (22)3=(23)2,也就是说如果 a a a可以表示为 k q ( q < b ) k^q(q<b) kq(q<b)时,那么 a b a^b ab一定已经被计算过了
#include#include #include #include #include
转载地址:http://bdwaf.baihongyu.com/