当前位置:网站首页>(lightoj - 1236) pairs forming LCM (prime unique decomposition theorem)
(lightoj - 1236) pairs forming LCM (prime unique decomposition theorem)
2022-07-06 16:23:00 【AC__ dream】
Topic link :Pairs Forming LCM - LightOJ 1236 - Virtual Judge
Chinese question meaning : Given a n Please lcm(a,b) Number to number ,lcm Represents the least common multiple , And (a,b) and (b,a) Treat as the same number pair .
analysis : set up n=p1^n1+p2^n2+……+pm^nm(m It's a subscript )
be a and b They can be expressed as
a=p1^a1+p2^a2+……+pm^am
b=p1^b1+p2^b2+……+bm^bm
Easy to know , if n=lcm(a,b), Then there are max(ai,bi)=ni, That is to say for n A qualitative factor of p,a and b contains p The maximum value of the power of the factor is equal to n contains p The power of the factor , That's for everyone pi factor ,ai and bi One of them must be ni, The other is 0~ni Any number in , So there is 2*(ni+1)-1=2*ni+1( Because both are ni It's a kind of emptying ), But contentment a<=b The number of cases except a=b=n This is not the case , Everything else is satisfaction a<b The number of cases is equal to a>b The number of cases , In addition to (n,n) Numbers other than this pair are divided by 2 that will do , That is to say (cal(n)-1)/2+1, Then add (n,n) In this case .
Here is the code :
#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
#include<map>
#include<cmath>
#include<queue>
using namespace std;
typedef long long ll;
const int N=1e7+9;
bool vis[N];
int prime[N],cnt;
void init()
{
for(int i=2;i<N;i++)
{
if(!vis[i]) prime[++cnt]=i;
for(int j=1;j<=cnt&&i*prime[j]<N;j++)
{
vis[i*prime[j]]=true;
if(i%prime[j]==0) break;
}
}
}
ll cal(ll n)
{
ll ans=1;
for(int i=1;i<=cnt&&prime[i]*prime[i]<=n;i++)
{
ll count=0;
while(n%prime[i]==0)
{
n/=prime[i];
count++;
}
ans*=(2*count+1);
}
if(n>1) ans*=(2*1+1);// also n This is the prime factor
return ans;
}
int main()
{
init();
int T;
cin>>T;
for(int _=1;_<=T;_++)
{
ll n;
scanf("%lld",&n);
printf("Case %d: %lld\n",_,cal(n)/2+1);
}
return 0;
}
边栏推荐
- 1005. Maximized array sum after K negations
- Codeforces Round #803 (Div. 2)A~C
- Codeforces round 797 (Div. 3) no f
- 快速转 TypeScript 指南
- QT realizes window topping, topping state switching, and multi window topping priority relationship
- 875. Leetcode, a banana lover
- Advancedinstaller installation package custom action open file
- “鬼鬼祟祟的”新小行星将在本周安全掠过地球:如何观看
- Codeforces - 1526C1&&C2 - Potions
- Codeforces Round #797 (Div. 3)无F
猜你喜欢
随机推荐
628. Maximum product of three numbers
Determine the Photo Position
Analyse du format protobuf du rideau en temps réel et du rideau historique de la station B
计算时间差
QWidget代码设置样式表探讨
Browser print margin, default / borderless, full 1 page A4
Kubernetes集群部署
window11 conda安装pytorch过程中遇到的一些问题
Flask框架配置loguru日志库
图图的学习笔记-进程
浏览器打印边距,默认/无边距,占满1页A4
Borg maze (bfs+ minimum spanning tree) (problem solving report)
875. 爱吃香蕉的珂珂 - 力扣(LeetCode)
Programmers, what are your skills in code writing?
Discussion on QWidget code setting style sheet
QT实现窗口置顶、置顶状态切换、多窗口置顶优先关系
Raspberry pie csi/usb camera uses mjpg to realize web camera monitoring
Sanic异步框架真的这么强吗?实践中找真理
1689. Ten - the minimum number of binary numbers
(POJ - 3685) matrix (two sets and two parts)