LightOJ - 1236 Pairs Forming LCM题解😎😎😎
我们设
令:
那么,很明显
(☝xzz大佬说的)
对于任意的
也就是说,
那么方法就有
贴代码!
#include<bits/stdc++.h>
#define int long long
using namespace std;
int biao[10000100],vis[10000100];
int n,t,cnt,num;
unsigned long long ans=1;
signed main(){
for(int i=2;i<=1e7;i++){
if(!vis[i]){
biao[++cnt]=i;
}
for(int j=1;i*biao[j]<=1e7;j++){
vis[i*biao[j]]=1;
if(biao[j]%i==0){
break;
}
}
}
cin>>t;
while(t--){
cin>>n;
ans=1;
for(int i=1;i<=cnt;i++){
if(biao[i]*biao[i]>n){
break;
}
if(n%biao[i]==0){
int cntt=0;
while(n%biao[i]==0){
cntt++;
n/=biao[i];
}
ans*=(cntt*2+1);
}
}
if(n!=1){
ans*=3;
}
cout<<"Case "<<++num<<": "<<ans/2+1<<endl;
}
return 0;
}
本文作者:LEWISAK
本文链接:https://www.cnblogs.com/lewisak/p/18146984
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步