zoukankan      html  css  js  c++  java
  • hdu 1239 Calling Extraterrestrial Intelligence Again(数学题)

    题意及解题思路:

           输入m,a,b;输出c,d

           满足条件:

             1.找出两个质数c,d。(大素数表)

             2.满足c*d为不大于m的最大值,(循环判断)

             先找最大的d,然后循环找出(m/d条件下)最大的c,

             还得在用一次d*c最大的条件,退出循环条件为找到的c》d;

             3.并满足 d>=c&&a*d<=b*c(判断条件)

    #include<stdio.h>
    #include<math.h>
    const int M=150000;
    int a[M];
    int isprime()
    {
    
        for(int i=0;i<M;i++)
        a[i]=i;
        a[1]=0;
        for(int i=2;i<sqrt((double)M);i++)
        {
            if(a[i]!=0)
            for(int j=2;i*j<M;j++)
            a[i*j]=0;
        }
        return 0;
    }
    int main()
    {
        int m,ai,b;
        int t,c,d,e,max;
        isprime();
        while(scanf("%d %d %d",&m,&ai,&b)!=EOF&&m!=0&&ai!=0&&b!=0)
        {
            c=0;
            max=0;
            for(int i=m;i>=1;i--)
            {
    
                if(a[i]!=0)
                {
                    //printf("%d**\n",a[i]);
                    d=a[i];
                    for(int j=m/d;j>=1;j--)
                    if(a[j]!=0)
                    {
                        //printf("%d\n",a[j]);
                        t=a[j];
                        if(b*t>=ai*d&&t<=d)
                        {
                            if(d*t>e*c)
                            {
                                e=d;
                                c=a[j];
                            }
                            break;
                        }
    
                    }
                }
                if(t<=d)continue;
                if(c!=0)break;
            }
            printf("%d %d\n",c,e);
        }
        return 0;
    }
  • 相关阅读:
    datalist分页
    css渐变色
    4月25日
    今天
    DataView Distinct
    心情复杂啦
    高数矩阵
    计算机视觉学习OpenCV Java 调用
    大数据学习关于hdfs
    摄影学习构图技巧
  • 原文地址:https://www.cnblogs.com/XDJjy/p/3057005.html
Copyright © 2011-2022 走看看