Follows 636.c (Total 25 lines):

/* @JUDGE_ID:4461XX 636 C */
/* A */
#include <stdio.h>
#include <string.h>
#include <math.h>
void main( void )
{
	char num[20] ;
	int big , i , j , total , num_1[20] ;
	while( scanf( "%s" , num )==1 ){
		if( strcmp( "0" , num )==0 ) break ;
		for( i=0 , big=0 ; i<strlen( num ) ; i++ ){
			num_1[strlen( num )-1-i] = num[i] - '0' ;
			if( num_1[strlen( num )-1-i]>big ) big = num_1[strlen( num )-1-i] ;
		}
		for( i=big+1 ; ; i++ ){
			for( j=0 , total=0 ; j<strlen( num ) ; j++ )
				total += num_1[j] * (int)pow( i , j ) ;
			if( sqrt( total )==(int)sqrt( total ) ){
				printf( "%d\n" , i ) ;
				break ;
			}
		}
	}
}

Back to statistics
Ya-Lin Huang (C)
huangyl@gmail.com