我正在尝试使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个质数

===============>>#1 票数:1

通过用索引减去起始值,您将获得循环号,该循环号与使用计数器的循环号相同。 一旦知道,如果计数器可以被sizeOfSetsizeOfSet输出的数量,如您指定的10)整除,则%sizeOfSet == 0将返回true。

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

该代码应包含在if-else语句之后的for循环末尾。

  ask by user2284528 translate from so

未解决问题?本站智能推荐: