int main(){ long l,cas; char fir[MAX],sec[MAX],res[MAX]; scanf("%ld",&cas); for(l=0;l<cas;l++){ scanf("%s%s",&fir,&sec); if(call_minus(fir,sec,res)==1) printf("-"); int len = strlen(res); for(int i=0;i<len;i++) printf("%c",res[i]); printf("\n"); } return 0; }
void call_sqrt(char *number,char *result,char *extra){ int num,start,e,mul,l,r=0,len; char left[MAX],after[MAX]; char who[5],temp[MAX],two[5]; len=strlen(number); if(len%2==0){ num=10*(number[0]-'0') + number[1]-'0'; start=2; } else{ num=number[0]-'0'; start=1; } mul=(int) sqrt(num); result[0]=mul+'0'; result[1]='\0'; if(num-mul*mul ==0) extra[0]='\0'; else sprintf(extra,"%d",num-mul*mul); for(;start<len;start+=2){ e=strlen(extra); extra[e]=number[start]; extra[e+1]=number[start+1]; extra[e+2]='\0'; two[0]='2'; two[1]='\0'; call_mult(result,two,left); l=strlen(left); for(mul=9;mul>=0;mul--){ who[0]=mul+'0'; who[1]='\0'; strcat(left,who); call_mult(left,who,after); if(call_minus(extra,after,temp)==1){ result[++r]=mul+'0'; result[r+1]='\0'; strcpy(extra,temp); break; } else left[l]='\0'; } } result[++r]='\0'; }