質問するログイン新規登録

回答編集履歴

1

説明の訂正

2018/06/06 00:23

投稿

退会済みユーザー
answer CHANGED
@@ -22,12 +22,14 @@
22
22
  int answer = 1;
23
23
 
24
24
  for(i = 2; pow(i,2) <= n; i++){
25
- for(j = 1; pow(j,i) <= n; j++){
25
+ for(j = 2; pow(i,j) <= n; j++){
26
- if(answer <= pow(j,i)){
26
+ if(answer <= pow(i,j)){
27
- answer = pow(j,i);
27
+ answer = pow(i,j);
28
28
  }
29
29
  }
30
30
  }
31
+
32
+ printf("%d\n",answer);
31
33
  ```
32
34
  for文の条件文のところに <=と イコールを付けることで入力した数値がべき乗数の時も対応しています。
33
35
  また、入力した数値が1の時ですが、このときはまずfor文を通らないので初期値answer = 1が答えとなります。