zoukankan      html  css  js  c++  java
  • hdu 2710 水题

    题意:判断一些数里有最大因子的数

    水题,省赛即将临近,高效的代码风格需要养成,为了简化代码,以后可能会更多的使用宏定义,但是通常也只是快速拿下第一道水题,涨自信。大部分的代码还是普通的形式,实际上能简化的部分也不太多

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cmath>
     4 #include<cstdio>
     5 using namespace std;
     6 #define for0n for(i=0;i<n;i++)
     7 #define for1n for(i=1;i<=n;i++)
     8 const int MAXN=25000;
     9 int prime[MAXN+1];
    10 void getPrime()
    11 {
    12     memset(prime,0,sizeof(prime));
    13     for(int i=2;i<=MAXN;i++)
    14     {
    15         if(!prime[i])prime[++prime[0]]=i;
    16         for(int j=1;j<=prime[0]&&prime[j]<=MAXN/i;j++)
    17         {
    18             prime[prime[j]*i]=1;
    19             if(i%prime[j]==0) break;
    20         }
    21     }
    22 }
    23 long long factor[100][2];
    24 int fatCnt;
    25 int getFactors(long long x)
    26 {
    27     fatCnt=0;
    28     long long tmp=x;
    29     for(int i=1;prime[i]<=tmp/prime[i];i++)
    30     {
    31         factor[fatCnt][1]=0;
    32         if(tmp%prime[i]==0)
    33         {
    34             factor[fatCnt][0]=prime[i];
    35             while(tmp%prime[i]==0)
    36             {
    37                 factor[fatCnt][1]++;
    38                 tmp/=prime[i];
    39             }
    40             fatCnt++;
    41         }
    42     }
    43     if(tmp!=1)
    44     {
    45         factor[fatCnt][0]=tmp;
    46         factor[fatCnt++][1]=1;
    47     }
    48     return fatCnt;
    49 }
    50 
    51 int main()
    52 {
    53     #ifndef ONLINE_JUDGE
    54     freopen("1.in","r",stdin);
    55     #endif
    56     int t,n,k;
    57     int i,j;
    58     getPrime();
    59     int flag;
    60     while(cin>>n)
    61     {
    62         int maxx=-9;
    63         for0n
    64         {
    65             cin>>k;
    66             getFactors(k);
    67             if(maxx<factor[fatCnt-1][0])
    68             {
    69                 flag=k;
    70                 maxx=factor[fatCnt-1][0];
    71             }
    72         }
    73         cout<<flag<<endl;
    74     }
    75 }
  • 相关阅读:
    zookeeper使用和原理探究(一)
    Zookeeper基本原理
    论照顾小孩与项目管理
    perl启动后台进程
    Oracle数据库迁移
    C# 语言Pagerank两种实现
    没文化真可怕--Silverlight 列冻结
    oracle中使用SQL递归语句的例子
    Visual Studio 2010 智能跟踪文件目录
    oracle wm_concat函数的应用(多行合成一行)
  • 原文地址:https://www.cnblogs.com/cnblogs321114287/p/4385707.html
Copyright © 2011-2022 走看看