如图,下面代码
#include <iostream> #include <cstring> using namespace std; const int N=10005; int p,q,prime[N],ans[N],num=0; int primePrint(){ int i,j; memset(prime,0,sizeof(prime)); for(i=2;i<=N;i++){ if(prime[i]) continue; for(j=i+i;j<=N;j+=i){ prime[j]=1; } ans[num++]=i; } } int main(){ int m,ansp,ansq; double a,b,Min,Max; primePrint(); while(cin>>m>>a>>b){ if(m==0&&a==0&&b==0) break; Max=0; Min=a/b; for(p=num-1;p>=0;p--){ for(q=p;q>=0;q--){ if(ans[p]*ans[q]>m||(double)ans[q]/ans[p]<Min) continue; if(ans[p]*ans[q]>Max){ Max=ans[p]*ans[q]; ansp=ans[p]; ansq=ans[q]; } } } cout<<ansq<<" "<<ansp<<endl; } return 0; }