質問編集履歴
1
解決
test
CHANGED
File without changes
|
test
CHANGED
@@ -169,3 +169,79 @@
|
|
169
169
|
### 補足情報(FW/ツールのバージョンなど)
|
170
170
|
|
171
171
|
用いているツールはpaizaです。
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
### 上記処理の解決方法
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
```C
|
180
|
+
|
181
|
+
#include <stdio.h>
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
//プロトタイプ宣言
|
186
|
+
|
187
|
+
int gcd(int,int);
|
188
|
+
|
189
|
+
int lcm(int,int,int);
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
int main(void){
|
194
|
+
|
195
|
+
int n1,n2,MAXgcd;
|
196
|
+
|
197
|
+
scanf("%d %d",&n1,&n2);
|
198
|
+
|
199
|
+
printf("1つ目の値を入力してください%d\n",n1);
|
200
|
+
|
201
|
+
printf("2つ目の値を入力してください%d\n",n2);
|
202
|
+
|
203
|
+
MAXgcd = gcd(n1,n2);
|
204
|
+
|
205
|
+
printf("2つの数の最大公約数は、%dです。\n",MAXgcd); //mのスコープ範囲をint bcdに移動
|
206
|
+
|
207
|
+
printf("2つの数の最小公倍数は、%dです。\n",lcm(n1,n2,MAXgcd));
|
208
|
+
|
209
|
+
}
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
//最大公約数を計算する関数
|
216
|
+
|
217
|
+
int gcd(int n1,int n2){
|
218
|
+
|
219
|
+
int m,MAX;
|
220
|
+
|
221
|
+
for(m = 1 ; m <= n1 || m <= n2 ; m++){
|
222
|
+
|
223
|
+
if(n1 % m == 0 && n2 % m == 0){
|
224
|
+
|
225
|
+
MAX = m; //最大公約数をint型MAXに格納
|
226
|
+
|
227
|
+
}
|
228
|
+
|
229
|
+
}
|
230
|
+
|
231
|
+
int r = MAX;
|
232
|
+
|
233
|
+
return r; //最大公約数MAXをreturnで返す
|
234
|
+
|
235
|
+
}
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
//最小公倍数を計算する関数
|
240
|
+
|
241
|
+
int lcm(int n1,int n2,int MAXgcd){
|
242
|
+
|
243
|
+
return (n1 * n2) / MAXgcd;
|
244
|
+
|
245
|
+
}
|
246
|
+
|
247
|
+
```
|