zoukankan      html  css  js  c++  java
  • uva10622

    题目连接:UVA - 10622 

     1 #include<cstdio>
     2 #include<cstring>
     3 long long x;
     4 int cnt;
     5 int pri[50100];
     6 int vis[50100];
     7 void is_pri()      //预处理素数表
     8 {
     9     memset(vis,0,sizeof(vis));
    10     cnt=0;
    11     for(int i=2;i<300;i++) if(!vis[i])
    12         for(int j=i*i;j<50100;j+=i)
    13             vis[j]=1;
    14     for(int i=2;i<50100;i++) if(!vis[i])
    15         pri[cnt++]=i;
    16 }
    17 int gcd(int x,int y)
    18 {
    19     return y==0?x:gcd(y,x%y);
    20 }
    21 int maxp(long long x)   //利用唯一分解定理
    22 {
    23     long long y=x;
    24     x=x<0?-x:x;
    25     int tmp;
    26     int ans=0;
    27     for(int i=0;i<cnt&&pri[i]<=x;i++)
    28     {
    29         tmp=0;
    30         while(x%pri[i]==0) {tmp++;x/=pri[i];}
    31         ans=gcd(ans,tmp);  //求指数的最大公因数
    32     }
    33     if(ans==0) return 1;
    34     if(y<0) while(ans%2==0) ans/=2;
    35     return ans;
    36 
    37 }
    38 int main()
    39 {
    40     is_pri();
    41    // for(int i=0;i<cnt;i++) printf("%d ",pri[i]);
    42     while(scanf("%lld",&x)&&x)
    43     {
    44         printf("%d
    ",maxp(x));
    45 
    46     }
    47 }
  • 相关阅读:
    PatentTips
    PatentTips
    PatentTips
    Xvisor ARM32 启动分析
    PatentTips
    PatentTips
    PatentTips
    PatentTips
    PatentTips
    PatentTips
  • 原文地址:https://www.cnblogs.com/yijiull/p/6808980.html
Copyright © 2011-2022 走看看