zoukankan      html  css  js  c++  java
  • HDU 2710 Max Factor 数论 (水

    Max Factor
    Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u
     

    Description

    To improve the organization of his farm, Farmer John labels each of his N (1 <= N <= 5,000) cows with a distinct serial number in the range 1..20,000. Unfortunately, he is unaware that the cows interpret some serial numbers as better than others. In particular, a cow whose serial number has the highest prime factor enjoys the highest social standing among all the other cows. 

    (Recall that a prime number is just a number that has no divisors except for 1 and itself. The number 7 is prime while the number 6, being divisible by 2 and 3, is not). 

    Given a set of N (1 <= N <= 5,000) serial numbers in the range 1..20,000, determine the one that has the largest prime factor. 

    Input

    * Line 1: A single integer, N 

    * Lines 2..N+1: The serial numbers to be tested, one per line

    Output

    * Line 1: The integer with the largest prime factor. If there are more than one, output the one that appears earliest in the input file.

    Sample Input

    4
    36
    38
    40
    42

    Sample Output

    38


    比较水xjb做
    新风格不错 以后就这样写了

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <algorithm>
    #include <queue>
    #include <vector>
    #include <iomanip>
    #include <math.h>
    #include <map>
    using namespace std;
    #define FIN     freopen("input.txt","r",stdin);
    #define INF     0x3f3f3f3f
    #define lson    l,m,rt<<1
    #define rson    m+1,r,rt<<1|1
    typedef long long LL;
    
    const int MAXN=20005;
    
    int p[MAXN];
    
    int main()
    {
        //FIN
        p[1]=1;
        int cou=0;
        for(int i=2; i<=20005; i++)
        {
            if(p[i]==0)
            {
                cou++;
                for(int j=i; j<=20005; j=j+i)
                {
                    p[j]=cou;
                }
            }
        }
        int n;
        while(~scanf("%d",&n))
        {
            int ans=0,pos;
            int x;
            for(int i=1;i<=n;i++){
                scanf("%d",&x);
                if(p[x]>ans)  {ans=p[x];pos=x;}
            }
            printf("%d
    ",pos);
    
        }
    
    }
    

      

  • 相关阅读:
    unnitest简单场景应用
    接口基础之request
    docker常用命令
    管理之心理学
    管理团队挑战和提升
    如何留下核心成员
    管理之面试技巧
    复杂接口请求怎样写http请求
    gitlab使用(一)
    不使用AutoLayout快速兼容适配iPhone6/6 Plus
  • 原文地址:https://www.cnblogs.com/Hyouka/p/5727599.html
Copyright © 2011-2022 走看看