Advertisement
Guest User

Untitled

a guest
Nov 13th, 2017
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <assert.h>
  3. #include <math.h>
  4.  
  5. unsigned long long N;
  6. float X,min=9999999999.9;
  7.  
  8. int somma(int x)
  9. {
  10. int s=0,log,i,p10=1;
  11.  
  12. log=(int)(log10((double)x));
  13. for(i=0;i<=log;i++)
  14. {
  15. s+=(int)(floor( ((double)x) / ((double)p10) )) % 10;
  16. p10*=10;
  17. }
  18.  
  19. return s;
  20. }
  21.  
  22.  
  23. int main() {
  24. FILE *fr, *fw;
  25. int sqr,x=-1,i;
  26.  
  27.  
  28. fr = fopen("input.txt", "r");
  29. fw = fopen("output.txt", "w");
  30. assert(1 == fscanf(fr, "%llu", &N));
  31.  
  32. sqr=(int)floor(sqrt(N));
  33. for(i=0;i<=90;i++)
  34. {
  35. X=(sqrt(i*i+4*N)-i)/2.0;
  36. //fprintf(fw, "i:%d, somma(X):%d, X:%f, (int)X:%d, del:%d\n",i,somma(X),X,(int)X,i*i+4*N);
  37. //if(X==(int)X) fprintf(fw, "1ok\n");
  38. //if(somma(X)==i) fprintf(fw, "2ok\n");
  39. //if(X<min) fprintf(fw, "3ok\n");
  40. if((X==floor(X))&&(somma(X)==i))
  41. {
  42. if(X<min)
  43. {
  44. min=X;
  45. x=X;
  46. //fprintf(fw, "yep\n");
  47. }
  48. }
  49. }
  50.  
  51. fprintf(fw, "%d\n", x);
  52. fclose(fr);
  53. fclose(fw);
  54. return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement