0

Java プログラムで行ごとに特定の量のスペースを印刷し、ドロップダウンしてリストを続行しようとしています。ユーザーが指定した範囲内のすべての素数を見つけて、範囲内の素数の数と素数自体を出力しています。プログラムが素数ではない数を見つけたときはいつでも、 - を出力する必要があります。これまでのところ、私は持っています:

java.util.Scanner をインポートします。

パブリッククラスのPrimeNums {

public static void main(String[] args) {
    Scanner keyboard= new Scanner(System.in);
    int startingVal;
    int endingVal;
    int index;
    int currNum = 2;
    boolean prime;
    int count=0;

    //***  Input  ***

    System.out.println("Enter the Starting Number of the Range: ");
    startingVal = keyboard.nextInt();
    System.out.println("Enter the Ending Value of the Range: ");
    endingVal = keyboard.nextInt();



    //*** Checks for Parameters  ***

    while(startingVal>1000||startingVal%10!=0){
        System.out.println("Starting Value was not evenly divisible by 10. Reenter Starting Value: ");
        startingVal= keyboard.nextInt();
    }
    while(startingVal>=endingVal||endingVal%10!=0||endingVal>1000){
        System.out.println("Ending Value was less than Starting Value or Did Not Follow Guideline. Reenter Ending Value: ");
        endingVal=keyboard.nextInt();
    }


    //***  Stores Checked Variables  ***

    int range = (endingVal);
    int[] primeArray = new int[10];

    //*** Checks for all Prime Numbers  ***

    for(index=startingVal; index<range; index++){

        if(index==1||index%2==0||index%3==0||index%4==0||index%5==0||index%6==0||index%7==0||index%8==0||index%9==0||index%10==0){
            System.out.print("-");
        }else{
            count++;
            System.out.print(index);
        }
    }
    System.out.println("There are " + count + " Prime Numbers in this range.");
}


}

これまでのところ、このプログラムは範囲内のすべての素数を見つけて出力しています。ただし、コードを 10 個セットで印刷する必要があります。次のようなものです。ここでの範囲は 70 ~ 200 です。


71 - 73 - - - - - 79 - | 80

    • 83 - - - - - 89 - | 90
            • 97 - - - | 100

101 - 103 - - - 107 - 109 - | 110

    • 113 - - - - - - - | 120
            • 127 - - - | 130

131 - - - - - 137 - 139 - | 140

                • 149 - | 150
151 - - - - - 157 - - - | 160

    • 163 - - - 167 - - - | 170
    • 173 - - - - - 179 - | 180

181 - - - - - - - - - | 190

191 - 193 - - - 197 - 199 - | 200


70から200までの間に27個の素数がある

4

1 に答える 1

1

開始値を index で減算すると、ループ数が得られます。これは、カウンターを使用している場合と同じになります。それがわかると、カウンターが(指定したセットあたりの出力数、10)で%sizeOfSet == 0割り切れる場合、trueが返されます。sizeOfSet

int sizeOfSet = 10;
if ((index-startingVal) %sizeOfSet == 0){
//prints out an empty line
System.out.printf("%n");
}

このコードは、if-else ステートメントの後の for ループの最後に含める必要があります。

于 2013-04-16T00:39:28.397 に答える