zoukankan      html  css  js  c++  java
  • uoj#48. 【UR #3】核聚变反应强度

    求次大公约数

    因为所有公约数一定是最大公约数的约数

    所以次大公约数一定是 最大公约数/它最小的质因数

    因为有一个数是确定的,只要预处理出a1的所有质因数(小于logn个)每次暴力检查即可

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int n,m;
     4 long long a[200001],b[200001];
     5 int main()
     6 {
     7     scanf("%d",&n);
     8     for(int i=1;i<=n;i++)
     9         scanf("%lld",&a[i]);
    10     long long tem=a[1],sq=sqrt(tem);
    11     for(int i=2;i<=sq;i++)
    12         if(tem%i==0) b[++m]=i,tem/=i;
    13     if(tem>1)
    14         b[++m]=tem;
    15     for(int i=1;i<=n;i++)
    16     {
    17         long long t=__gcd(a[1],a[i]);
    18         if(t==1)
    19         {
    20             printf("-1 ");
    21             continue;
    22         }
    23         for(int j=1;j<=m;j++)
    24         if(t%b[j]==0) { t/=b[j];break;}
    25         printf("%lld ",t);
    26     }
    27     return 0;
    28 }
  • 相关阅读:
    团队展示&选题
    结对编程(JAVA实现)
    wc项目(node.js实现)
    复审与事后分析
    事后诸葛亮分析报告
    Alpha阶段项目复审
    测试与发布
    Scrum 冲刺第五篇
    Scrum 冲刺第一篇
    项目冲刺
  • 原文地址:https://www.cnblogs.com/wanglichao/p/6835543.html
Copyright © 2011-2022 走看看