fork download
  1. #include <stdio.h>
  2.  
  3. // 課題3で作成した再帰関数をそのまま使用(省略)
  4. int rec(int n) {
  5. // ... 課題3のコード
  6. if (n == 0) return 3;
  7. if (n == 1) return 0;
  8. if (n == 2) return 2;
  9. return rec(n - 2) + rec(n - 3);
  10. }
  11.  
  12. int main(void) {
  13. // 課題3と同じく n=0 から n=50 までループ (列挙する項の範囲は課題3に準ずる)
  14. for (int n = 0; n <= 50; n++) {
  15.  
  16. // n=0 のときは無視 (問題の指示)
  17. if (n == 0) {
  18. continue;
  19. }
  20.  
  21. // a_n の値を計算
  22. int an = rec(n);
  23.  
  24. // 条件判定: a_n が n で割り切れるか (an % n == 0)
  25. if (an % n == 0) {
  26. printf("n = %d (a%d = %d) -> 割り切れます\n", n, n, an);
  27. }
  28. }
  29.  
  30. return 0;
  31. }
  32.  
  33.  
Success #stdin #stdout 0.02s 5292KB
stdin
Standard input is empty
stdout
n = 1 (a1 = 0) -> 割り切れます
n = 2 (a2 = 2) -> 割り切れます
n = 3 (a3 = 3) -> 割り切れます
n = 5 (a5 = 5) -> 割り切れます
n = 7 (a7 = 7) -> 割り切れます
n = 11 (a11 = 22) -> 割り切れます
n = 13 (a13 = 39) -> 割り切れます
n = 17 (a17 = 119) -> 割り切れます
n = 19 (a19 = 209) -> 割り切れます
n = 23 (a23 = 644) -> 割り切れます
n = 29 (a29 = 3480) -> 割り切れます
n = 31 (a31 = 6107) -> 割り切れます
n = 37 (a37 = 33004) -> 割り切れます
n = 41 (a41 = 101639) -> 割り切れます
n = 43 (a43 = 178364) -> 割り切れます
n = 47 (a47 = 549289) -> 割り切れます