• 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 }
  • 相关阅读:
    协方差与协方差矩阵
    boost.python笔记
    2014年8月3日
    工作记录
    工作记录
    工作记录
    sed教程
    Visual studio C++ 之空控制台工程添加文件并解决头文件包含问题
    Visual studio C++ MFC之列表控件CListCtrl Control
    Visual studio C++ MFC之点击按钮(菜单栏)生成新窗口
  • 原文地址:https://www.cnblogs.com/cnblogs321114287/p/4385707.html
Copyright © 2020-2023  润新知