fork download
  1. #include <stdio.h>
  2. #include <stdio.h>
  3.  
  4. int isom(int n) {
  5. int sum = 0;
  6.  
  7. for (int i = 0; i <= n; i++) {
  8. int sq = i * i; // 二乗
  9. int mod = 1;
  10. int x = i;
  11.  
  12. // iの桁数に応じた10の累乗を作る
  13. if (i == 0) mod = 10;
  14. else {
  15. while (x > 0) {
  16. mod *= 10;
  17. x /= 10;
  18. }
  19. }
  20.  
  21. // 二乗の末尾が同じなら自己同形数
  22. if (sq % mod == i) {
  23. sum += i;
  24. }
  25. }
  26.  
  27. return sum;
  28. }
  29. int main(void) {
  30. printf("%d\n", isom(10)); // → 12
  31. printf("%d\n", isom(99)); // → 113
  32. return 0;
  33. }
  34.  
  35.  
  36.  
Success #stdin #stdout 0s 5312KB
stdin
Standard input is empty
stdout
12
113