質問編集履歴

1

解決

2019/12/14 13:41

投稿

hayato208
hayato208

スコア19

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
+ ```