2016-09-30 7 views
0

私は以下の元の問題を投稿します。私は大部分の権利を持っていますが、最初に入力した数字が否定的かどうかをチェックして「悪い入力」を表示する方法はわかりません。誰でも私を助けることができます。値の入力を確認して何かを印刷

一連の正の整数を1行の入力で読み込み、それらの整数の積を計算して出力するプログラムを作成します。整数は、ユーザーが1未満の整数を入力するまで受け入れられ、掛け算されます。この最終数値は、製品の一部ではありません。次に、プログラムは製品を印刷します。最初に入力した数値が負または0の場合、プログラムは「Bad input。」を出力し、直ちに終了する必要があります。

次に、プログラムは、製品の素因数分解を決定して印刷し、要素を昇順でリストします。素数が製品の要素でない場合、それは因数分解に現れてはならない。サンプルを以下に示します。素数のべき乗が1ならば、その1は答えに現れなければならないことに注意してください。あなたはすべての答えを与えることなく

Scanner input = new Scanner(System.in); 
    System.out.println("Enter integers:"); 
    int product = 1; 
    int num = 0; 
    while (input.hasNextInt()) { 
     num = input.nextInt(); 
     if (num < 1) 
      break; 
     product *= num; 
    } 
    System.out.println("Product: " + product); 
    int f = 2; 
    while (product >= f) { 
     int count = 0; 
     while (product % f == 0) { 
      count++; 
      product = product/f; 
     } 
     if (count > 0) 
      System.out.print(f + "^" + count + " "); 
     f++; 
    } 
} 
+0

を行います。 –

答えて

0

... 1は最初のものとなっているトラックを保持:

は、ここに私のコードです。最初のものであれば、その値をチェックし(0か0より小さいかどうかを確認してください)、もしあればエラーを出力してプログラムを終了してください。

0

あなたのループが入力を読み始める前に、あなた自身の宿題をしなさい最初の整数を読んで、あなたのロジック

int product = 1; 
int num = 0; 
    num = input.nextInt(); 
    if(num <1) { 
     System.out.println("bad number"); 
     return; 
     } 
    product*=num; 
while (input.hasNextInt()) { 
    num = input.nextInt(); 
    if (num < 1) 
     break; 
    product *= num; 
} 
関連する問題