前言: 这题难点在于复杂度分析. 实现: 首先很容易想到k假如不是质数答案为0.因为假如k不是质数,那么它一定可以写成比它小的数相乘.其次假如答案可行,必定是大于等于k的质数的乘积的形式.因为假设不是比k的质数乘积,就是利用了到的质数.这是不行的.有了这两点,暴力的代码应该是都会写的..区间的就等于.然后令是以内能被整除,不能被到整除的答案即可.至于cal怎么算,是利用容斥算的,是区间的总答案,同时也是乘的那个系数.前面讲到了,这个系数不能是到的数.然后递归下就好了. #include <iostream> using namespace std; bool _prime(int ...