###実現したいこと
三つ以上の整数の最大公約数を求める。
###問題点
最大公約数が違う答えになる。 ./kadai09 40 45 50 "最大公約数は0"
###追記5/21
私なりにいただいた助言をもとに考えなおしてみました。でもうまくいかないです。
やりたいこととしては、まずargc[1]とargc[2]の最大公約数を求めて、その答えとargc[3]の最大公約数を求めるというのをどんどん繰り返していく、、、というかんじです。
###コード
C++
1#include<iostream> 2#include<cstdlib> 3int main(int argc,char* argv[]) 4{ 5 int maxk=0; 6 int ans=0; 7 int i,j,k; 8 for(i=1;i<argc;i++){ 9 for(j=std::atoi(argv[i]);j>0;j--){ 10 if(std::atoi(argv[i])%j==0){ 11 if(std::atoi(argv[i+1])%j==0){ 12 ans=j; 13 break; 14 } 15 } 16 for(k=ans;k>0;k--){ 17 if(ans%k==0){ 18 if(std::atoi(argv[i+2])%k==0){ 19 maxk=k; 20 break; 21 } 22 } 23 } 24 } 25 } 26 std::cout<<"最大公約数は"<<maxk<<"\n"; 27 return 0; 28}
回答3件
あなたの回答
tips
プレビュー