昆明云南微网站制作哪家好,苏州室内设计学校,广告最多的网站,手机网站自适应代码思路分析: 我们可以发现125是因子个数的极限了,所以我们可以用二维数组来维护第几个数有几个因子,然后用前缀和算出来每个区间合法个数,通过一个排列和从num里面选2个 ,c num 2 来计算即可
#includeiostream
#includecstring
#includestring
#include… 思路分析: 我们可以发现125是因子个数的极限了,所以我们可以用二维数组来维护第几个数有几个因子,然后用前缀和算出来每个区间合法个数,通过一个排列和从num里面选2个 ,c num 2 来计算即可
#includeiostream
#includecstring
#includestring
#includealgorithm
#define int long long
using namespace std;
int n,m;
int w[100005];
int cnt[1000005][150];
signed main()
{cinnm;for(int i1;in;i){cinw[i];int num0;for(int j1;j*jw[i];j){if(w[i]%j0) num2;//计算因子数if(w[i]j*j) num-1;}cnt[i][num]1;//第i位置上的数有num个因子,这种情况存在,记作1}for(int i1;in;i)for(int j1;j130;j){cnt[i][j]cnt[i-1][j];//前缀和}while(m--){int ans0;int a,b;cinab;for(int i1;i130;i){int sumcnt[b][i]-cnt[a-1][i];if(sum)anssum*(sum-1)/2;//组合数}coutansendl;}return 0;
}