gpt4 book ai didi

java - 在 JOptionPane 输出上一行打印 10 组素数

转载 作者:太空宇宙 更新时间:2023-11-04 14:25:53 25 4
gpt4 key购买 nike

我想找到从1到1000的素数,以及从1到10000的完美数。最后我得到了代码输出。但我想在一行上打印 10 个素数。

例如:

2 3 5 7 11 13 17 19 23 29 然后

31 37 41 43 47 53 59 61 67 71

但是,我的输出是这样的

235791113171923293137414347

有两套代码,一套是方法,一套是调用该方法的实际程序

public class MyMath
{//class start

//method to define prime number
public static boolean isPrime( long num )
{//start isPrime method

//declare and initialize prime variable as true
boolean isPrime = true;

if ( num >= 2)
{//start if statement

for ( long counter = 2; counter < num; counter++)
{//start for loop

//define whether num is prime or not with
// a reminder operator
if( num%counter == 0)
isPrime = false;//if not initialize variable to false
}//end for loop
}//end if

//check for negative number and two
if( num <= 1 )
isPrime = false;
if ( num == 2)
isPrime = true;

return isPrime;//send back prime variable
}//end method

//method to define perfect numbers
public static boolean isPerfect( long num )
{//start method
//declare and initialize perferct number variable as true
boolean isPerfect = true;
long sum = 0;

//check for input
if ( num <= 1)
isPerfect = false;

//if num is larger than one
if ( num > 1)
{//start if statement
//use a for loop to find the factor
for(long factor = 1; factor <= num/2; factor++ )
{//start for loop
if( num%factor == 0 )
sum += factor;
}//end for loop
}//end if statement

//if the sum of the factor equal to num
//initialize perfect number variable as true
//else perfect number variable is false
if ( num == sum )
isPerfect = true;
else
isPerfect = false;
return isPerfect;//send back perfect number variable
}//end method
}//end class

这是实际的代码

import javax.swing.JOptionPane;//import JOptionPane for dialog boxes

public class MyMathTest
{//start MyMathTest class

public static void main (String args [])
{//start main

//a string to prompt the user in a dialog box
String choice = "Enter 1 to display the prime numbers from 1 - 1,000\n" +
"Enter 2 to display perfect numbers from 1 - 10,000\n" +
"Enter 3 to quit\n" + "written by blabla";
int userInput;//declare a variable for user's input

do
{//start do while loop to check for input range
String prompt = JOptionPane.showInputDialog( choice );
userInput = Integer.parseInt ( prompt );
}

while( userInput < 1 ^ userInput > 3);//repeat the prompt if input is larger than 3 or smaller than 1

//declare and initialize a counter for line format of the string
int lineCounter = 1;

switch ( userInput )
{//start switch

case 1:
//declare and initialize a string for header and hold the numbers of prime
String primeNumberString = String.format ("The prime number from 1 - 1000 are\n");

for (int primeCounter = 1; primeCounter < 1000; primeCounter++ )
{//start loop

//print a new line after 2 prime number
//and restart to count the counter from 1
if ( lineCounter == 11 )
{//start if
primeNumberString += "\n";
lineCounter = 1;
}//end if

//if prime number is true
if (MyMath.isPrime( primeCounter ))
{//start if
//add number to the string
primeNumberString += String.format ("%d", primeCounter );
//add tone to lineCounter after every prime number
++lineCounter;
}//end if
}//end loop

//display prime number message within a dialog box
JOptionPane.showMessageDialog ( null,primeNumberString );
//exit the switch
break;

case 2:
//declare and initialize a string for header and hold the perfect numbers
String perfectNumberString = "Perfect numbers from 1 - 10,000 are:\n";

for (int perfectCounter = 1; perfectCounter < 10000; perfectCounter++)
{//start the loop

//if the perfect number is true
if(MyMath.isPerfect( perfectCounter ))

//add perfect number into the string
perfectNumberString += String.format ( "%d ", perfectCounter);
}//end for loop

//display perfect number message within a dialog box
JOptionPane.showMessageDialog ( null, perfectNumberString );
break;//exit switch

case 3:
break;//exit switch
}//end switch
}//end main method
}//end class

最佳答案

再添加一个if条件

if(lineCounter == 10){
primeNumberString += "\n";
lineCounter = 1;
}

这将创建一个新行并停止 lineConter。

如果你可以将 primeNumberString 更改为 StringBuffer,那么你可以只保存 +,这很糟糕。

关于java - 在 JOptionPane 输出上一行打印 10 组素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26667158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com