网站建设免费建站免费源代码,晋城推广型网站开发,做网站简单还是app简单,系统开发工具有哪些题意#xff1a;给定一个区间[l,r],然后问在该区间内谁的因子最多#xff01;思路#xff1a;先大致分析一下#xff0c;比如对于一个数12#xff0c;那么可以拆分成2*2*3#xff0c;就是对一个数分解质因数#xff0c;然后你会发现在组成因子的时候#xff0c;每个质因…题意给定一个区间[l,r],然后问在该区间内谁的因子最多思路先大致分析一下比如对于一个数12那么可以拆分成2*2*3就是对一个数分解质因数然后你会发现在组成因子的时候每个质因数可以选择一个两个……一直到到该因子的指数次个ok这就算完了分解质因数然后依次相乘即可等等有什么不对都不选后者某个质因数不选也可以啊比如因数是1嗯对了指数补上1然后相乘就可以了code#include iostream#include cstdio#include cmath#include cstring#include algorithmusing namespace std;typedef long long ll;const int N35010;int p[N],len0,vis[N];void tab(){ memset(vis,0,sizeof(vis)); for (int i2;iN;i) { if (vis[i]) continue; p[len]i; for (int ji;jN;ji) vis[j]1; }}int cal(int n){ int s1; for (int i0;ilenp[i]n;i) { if (n%p[i]) continue; int ct1; //初始化为1表示不选该质因子的情况 while (n%p[i]0) { ct; n/p[i]; } s*ct; } return s;}int main(){ tab(); int T; scanf(%d,T); while (T--) { int l,r; scanf(%d %d,l,r); int ma0,ans; for (int il;ir;i) { int tcal(i); if (tma) { mat; ansi; } } printf(Between %d and %d, %d has a maximum of %d divisors.\n,l,r,ans,ma); }}