HDU1239 Calling Extraterrestrial Intelligence Again (打表+暴力)

来源:互联网 发布:ubuntu cmake安装 编辑:程序博客网 时间:2024/05/22 05:16

这题首先可以进行素数的打表,一开始一直错,发现是自己的素数表大的有问题,打完表接下来就很简单的进行暴力就行了。

#include<stdio.h>#include<string.h>bool sushu[100005];void prime(){    memset(sushu,true,sizeof(sushu));    sushu[0]=sushu[1]=false;    for(int i = 2;i*i < 100005;i++)        if(sushu[i]){            for(int j=i*i;j<100005;j+=i){                sushu[j]=false;            }        }}int main(){    int m,a,b;    prime();    while(scanf("%d %d %d",&m,&a,&b),m,a,b){        double t = a*1.0/b;        int p = 1,q = 1;        for(int i = 2;i<=m/2;i++){            if(sushu[i] == false)                continue;            for(int j = 2;j<=i && i*j <=m;j++){                if(j*1.0/i < t || sushu[j] == false)                    continue;                if(i*j > p*q){                    p = i;                    q = j;                }            }        }        printf("%d %d\n",q,p);    }    return 0;}


0 0
原创粉丝点击