zoukankan      html  css  js  c++  java
  • 51nod 1179 最大的最大公约数

    一直Runtime error  

    后来发现数组开小了 调了半天

    大概两种写法吧

    第一种是枚举每个值 把他的因子都记录  最后从最大的因子 倒着数 这样子

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn = 1000000+100;
    int s[maxn];
    int t[maxn];
    
    int main ()
    {
        int n;
        scanf("%d",&n);
    
        for(int i=1;i<=n;i++)
            scanf("%d",&s[i]);//mx=max(mx,s[i]);
        //t[1] = 2;//如果没有的话就是1了
        int mx = 1;
        for(int i=1;i<=n;i++)
        {
            int r = sqrt(s[i]);
    
            for(int j=1;j<=(r+1);j++)
            {
                if(s[i]%j==0)
                {
                    t[j]++;
                    t[s[i]/j]++;
                    mx =max(mx,max(j,s[i]/j));
                    //while(s[i]%j==0)
                    //{
                      //  s[i]/=j;
                   // }
                    //printf("%d ",j);
                }
            }
            //puts("");
        }
        for(;mx>=1;mx--)
            if(t[mx]>=2)
            {
                printf("%d
    ",mx);
                return 0;
            }
    
    }

    第二种 类似素数筛 的 一种筛法  不过是倒着来的

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn = 1000000+100;
    //int s[maxn];
    int t[maxn];
    
    int main ()
    {
        int n;
        scanf("%d",&n);
        int mx =0;//记录最大的
        for(int i=1;i<=n;i++)
        {
            int s;
            scanf("%d",&s);
            mx = max(s,mx);
            t[s]++;
        }
        int i=mx;
    
        //cout<<mx<<endl;
        for( ;i>=1;i--)//用到了筛法类似的东西
        {
            int sum=0;
            for(int j=i;j<=mx;j+=i)
            {
                sum += t[j];
                if(sum>=2)
                    break;
            }
            if(sum>=2)
                break;
        }
        //for(int i=1;i<=25;i++)
            //printf("%d ",t[i]);
        printf("%d
    ",i);
    }
  • 相关阅读:
    IE8 "开发人员工具" 无法使用,无法显示
    Python中用OpenPyXL处理Excel表格
    calendar函数使用说明【转】
    python之fabric2.0模块学习
    Day9
    Day8
    深入super,看Python如何解决钻石继承难题——转自楚门蔡的测视界
    python/socket编程之粘包
    os模块关于目录
    Day7
  • 原文地址:https://www.cnblogs.com/Draymonder/p/7403049.html
Copyright © 2011-2022 走看看