LightOJ 1236 Pairs Forming LCM 合数分解
2024-09-01 01:10:27
题意:求所有小于等于n的,x,y&&lcm(x,y)==n的个数
分析:因为n是最小公倍数,所以x,y都是n的因子,而且满足这样的因子必须保证互质,由于n=1e14,所以最多大概在2^13个因子 即8000多因子
所以每次可以递归暴力寻找一个因子,然后选好了以后,看唯一分解不同种素数还有哪种没有用,符合条件的只能用这些没有用过的,然后直接统计
注:由于最终每个对都被统计了两次,所以/2,由于本身也算一对,所以+1
代码:
#include <cstdio>
#include <iostream>
#include <ctime>
#include <vector>
#include <cmath>
#include <map>
#include <queue>
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long LL;
const int N=1e7+;
const int INF=0x3f3f3f3f;
int cnt;
bool v[N];
LL prime[];
void getprime(){
for(int i=;i*i<=N-;++i)
if(!v[i])
for(int j=i*i;j<=N-;j+=i)
v[j]=;
for(int i=;i<=N-;++i)
if(!v[i])prime[++cnt]=i;
}
int ans;
vector<LL>g,c;
bool vis[];
void dfs(int pos,LL res){
if(pos==g.size()){
int tmp=;
for(int i=;i<g.size();++i){
if(vis[i])continue;
tmp*=(c[i]+);
}
ans+=tmp;
return;
}
dfs(pos+,res);
vis[pos]=;
for(LL i=,k=g[pos];i<=c[pos];++i,k*=g[pos])
dfs(pos+,res*k);
vis[pos]=;
return;
}
int main()
{
getprime();
int cas=,T;
scanf("%d",&T);
while(T--){
LL t,n;
scanf("%lld",&n),t=n;
g.clear(),c.clear();
for(int i=;i<=cnt&&prime[i]*prime[i]<=t;++i){
if(t%prime[i])continue;
int tot=;
g.push_back(prime[i]);
while(t%prime[i]==)t/=prime[i],++tot;
c.push_back(tot);
}
if(t>)g.push_back(t),c.push_back();
ans=;
dfs(,);
printf("Case %d: %d\n",++cas,(ans>>)+);
}
return ;
}
最新文章
- 微软发布TX(LINQ To Logs And Traces)
- 快速傅里叶(FFT)的快速深度思考
- 本周psp(11月17-23)
- ALV Tree demo(WBS元素分层显示)[引用别人的]
- C#注释的几种方法
- shell-bash学习01基础、打印、环境变量
- JUC回顾之-CyclicBarrier底层实现和原理
- 齐次坐标概念&;&;透视投影变换推导
- Android下各个按键对应的key code
- Android Studio依赖dependencies和Eclipse加上lib包解决重复编译某些项目的问题
- 用php做省份的三级联动 附带数据库
- 基于android的语音识别
- 支持老版本IE的3种解决方案
- Simulink 产品说明
- 【XSY3370】道路建设 最短路
- stm32WB55xx 外设资源
- UVA10562(看图写树,dfs)
- ruby执行字符串代码
- 全局 SqlConnection
- mongodb 3.0下载安装、配置及mongodb最新特性、基本命令教程详细介绍
热门文章
- 解决rtl8723be无线网卡驱动频繁断网问题
- TweenMax动画库学习(三)
- [C#]Array 添加扩展
- JavaScript的语法要点 1 - Lexically Scoped Language
- 常用PHP缓存技术
- 【python】疯了,掉坑里出不来了
- WebLogic启动时报错
- 【方言】Access to DialectResolutionInfo cannot be null when &#39;hibernate.dialect&#39; not set
- OpenGL列主元矩阵的运算
- 上传项目到Github