Code: Select all
216 125
Code: Select all
127 623
Check it yourself with the code you have posted.
Moderator: Board moderators
Code: Select all
216 125
Code: Select all
127 623
Code: Select all
if((unsigned long) pow(n,(double)1/d)+1 == (unsigned long) pow(h,(double)1/d))
I got the correct answer for this case, too. It may be computer dependent.mamun wrote:Check this lineCan you find the mistake now?Code: Select all
if((unsigned long) pow(n,(double)1/d)+1 == (unsigned long) pow(h,(double)1/d))
I wonder how you got correct answer in your computer with this mistake!
Code: Select all
#include <stdio.h>
#include <math.h>
void main() {
int x, y, h, n, r, s ;
double c, l;
while ( scanf ("%d%d", &x, &y ) ) {
if (x==0 && y==0) break ;
c = log ( (double)x )/log ( (double)y ) ;
for ( n=1; n<=y; n++ )
if ( fabs( pow( (double)n,c )-(double)n-1.0 ) < 0.001 ) break ;
h = (int)(log ( (double)y )/log ( (double)n )) ;
r = (int)(pow ( (double)n,(double)h+1 )-1)/(n-1) - y;
l = n/(double)(1+n);
s = (int) ( x*( pow ( l,(double)(h+1) )-1 )/(double)(l-1) + 0.001);
printf ( "%d %d\n", r, s );
}
}
Code: Select all
100 1
1000 1
10000 1
0 0
Code: Select all
7 199
10 1999
13 19999
Code: Select all
100 1
1000 1
10000 1