Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
帮帮忙,为什么是RT,还有什么更快的运算方法么?#include <stdio.h> #include <math.h> int f(int n){ int y,i; if(n==2||n==3) y=1; else{ for(i=2;i<=(int)sqrt(n);i++){ y=1; if(n%i==0){ y=0; break; } } } return(y); } void main(){ long a; int b,c,i,j,t1,t2,m,h[100][2]; scanf("%ld %d %d\n",&a,&b,&c); while(a!=0&&b!=0&&c!=0){ for(i=0;i<100;i++){ h[i][0]=0;h[i][1]=0; } if(b==c){ for(i=(int)sqrt(a);i>=2;i--) if(f(i)) break; printf("%d %d\n",i,i); } else{ m=0; for(i=(int)sqrt(a);i>=2;i--){ if(f(i)){ for(j=(int)(i*c*1.0/b);j>=i;j--){ if(f(j)){ h[m][0]=i; h[m][1]=j; if(i*j<=a) break; } } m++; } } t1=h[0][0]*h[0][1]; t2=0; for(i=1;i<=m;i++){ t1=t1>h[i][0]*h[i][1]?t1:h[i][0]*h[i][1]; t2=t1>h[i][0]*h[i][1]?t2:i; } printf("%d %d\n",h[t2][0],h[t2][1]); } scanf("%ld %d %d\n",&a,&b,&c); } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator