###実現したいこと
num[1,2,3] fizz[ab,cd]という2つのlistが存在する場合に、
numの最後の要素(m)を他の要素で割り切れる場合(3%1==0,3%2==0)に
要素番号に対応するfizzの要素(ab,cd)を出力
mが他の要素全てで割り切れない場合(3%1!=0&&3%2!=0)に
mが素数か判定し、素数でない場合はそのままmを出力、
素数である場合はprimeを出力するプログラムを作成しました。
今回の場合numの最後の要素が3でnum[0]の1で割り切れるため
「ab」と出力されるのが正解なのですが、
下記コードで試行したところ、「abprime」と出力されてしまいました。
おそらく条件分岐がうまくいっていないことが原因だと思うのですが、
何度確認(メモ帳で思考を整理etc)しても自分ではどこが誤っているのか分からないため
どこが今回のミスを起因しているいるのかお分かりの方は、ご教示いただけないでしょうか。
###入出力例
入力: num[1,2,3] fizz[ab,cd] 出力: ab 実際: abprime
java
1 boolean flag=false; 2 int m = num.get(num.size()-1); 3 for(int i=0;i<num.size()-1;i++) { 4 if(m%num.get(i)==0) { 5 Collections.sort(num); 6 System.out.print(fizz.get(i)); 7 flag=true; 8 }else if(flag==false&&m>2){ 9 for(i = 2; i < m-1; i++){ 10 if(m % i == 0) { 11 System.out.println(m); 12 }else{ 13 System.out.println("prime"); 14 }return; 15 } 16 }else if(flag==false&&m<=2){ 17 System.out.println(m); 18 return; 19 } 20 }
###処理メモ
mがnumの要素で割れる(m%num.get(i))
→割れた時のnumと同じ要素番号のfizzを出力(fizz.get(i))
mがnumで割れないかつmが2より大きい(m%num.get(i)!=0&&m>2)
→mが素数でなければm
→mが素数であればprime
それ以外
→mを出力
回答2件
あなたの回答
tips
プレビュー