【UOJ#48】【UR #3】核聚变反应强度(质因数分解)

题面

UOJ

题解

答案一定是\(gcd\)除掉\(gcd\)的最小质因子。

而\(gcd\)的最小值因子一定是\(a_1\)的质因子。

所以预处理出\(a_1\)的质因子,个数不会超过\(\log(a)\)个,然后就可以直接暴力了。

时间复杂度\(O(n\log(a)+\sqrt a)\)

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
#define ll long long
inline ll read()
{
ll x=0;bool t=false;char ch=getchar();
while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
if(ch=='-')t=true,ch=getchar();
while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
return t?-x:x;
}
int n,tot;
ll fac[100000],a[1000100];
ll Calc(ll n)
{
if(n==1)return -1;
for(int i=1;i<=tot;++i)
if(n%fac[i]==0)return n/fac[i];
return 1;
}
int main()
{
n=read();
for(int i=1;i<=n;++i)a[i]=read();
ll x=a[1];
for(int i=2;1ll*i*i<=x;++i)
if(x%i==0)
{
fac[++tot]=i;
while(x%i==0)x/=i;
}
if(x>1)fac[++tot]=x;
for(int i=1;i<=n;++i)printf("%lld ",Calc(__gcd(a[1],a[i])));
puts("");
return 0;
}

最新文章

  1. [资料分享]Python视频教程(基础篇、进阶篇、项目篇)
  2. Flexbox制作CSS布局实现水平垂直居中
  3. ios中strong, weak, assign, copy
  4. PDO--PHP Data Objects
  5. HP-UX查看版本
  6. Eclipse JDK的安装
  7. JavaScript特效制作经典精讲(案例入门详解、可直接粘贴拷贝运行、史上最牛案例)
  8. 【JAVAWEB学习笔记】22_ajax
  9. 工作随笔——selenium支持post请求,支持自定义header
  10. Java关键字——native
  11. YAML基本语法
  12. Js中String转int
  13. Nexus 安装 使用说明
  14. Elastic-Job源码分析之JobScheduler类分析
  15. $this-&gt;success传递数据
  16. (转载)【C#4.0】dynamic和var及object
  17. mvc+EF - 有用文章
  18. POJ1990 MooFest
  19. Celery-4.1 用户指南: Monitoring and Management Guide (监测和管理指南)
  20. Git配置和常用命令

热门文章

  1. springboot深入浅出系列(16章97节)-看了都说好
  2. yolov3和ssd的区别
  3. ls用法
  4. 如何访问到静态的文件,如jpg,js,css.
  5. Java生鲜电商平台-生鲜供应链(采购管理)
  6. Redis缓存系列
  7. HTTP中的301、302、303、307、308
  8. Linux(ubuntu)下创建用户没有创建家目录
  9. swift个人总结
  10. XCode证书问题