fork(13) download
  1. #include <stdio.h>
  2. int main()
  3. {
  4. while(1)
  5. {
  6. int n=0;
  7. int arr[100000],sum=0,arrcnt=0;
  8. scanf("%d",&n);
  9. if(n==-1) return 0;
  10. for(int i=2;i<=n;i++)
  11. {
  12. if(n%i==0)
  13. {
  14. arr[arrcnt] = n/i;
  15. arrcnt++;
  16. sum+=n/i;
  17. }
  18. }
  19. if(sum==n)
  20. {
  21. printf("%d = ",n);
  22. for(int i=0;i<arrcnt;i++)
  23. {
  24. if(arr[arrcnt - i-1]==NULL)
  25. {
  26. break;
  27. }
  28. printf("%d",arr[arrcnt - i-1]);
  29. if(arr[arrcnt - i-2]!=NULL)
  30. {
  31. printf(" + ");
  32. }
  33. }
  34. }
  35. else
  36. {
  37. printf("%d is NOT perfect.",n);
  38. }
  39. printf("\n");
  40. }
  41.  
  42. }
Success #stdin #stdout 0s 4552KB
stdin
6
-1
stdout
6 = 1 + 2 + 3 +