primefactorstest.java
来自「java learn PPT java learn PPT java learn」· Java 代码 · 共 76 行
JAVA
76 行
import java.io.*;
public class PrimeFactorsTest
{
//从用户那里读入一个 String 并把它转化为int
public static int readInt(String prompt) throws IOException
{
int result = 0; // the value read from the user
// 创建一个新的 BufferedReader 来从标准输入从读取数据
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// 打印用户提示
System.out.print(prompt);
// 在非法输入之前一直尝试读取
while(true)
{
try
{
// 把输入解析为整数
result = Integer.parseInt(reader.readLine());
return result;
}
catch(NumberFormatException e)
{
// 要求用户重新输入
System.out.print("Bad number format, redo: ");
}
}
} // readInt
// 暴力判断一个数字是否是素数(素数除了1和它本身外没有别的因数)
public static boolean isPrime(int n)
{
for(int i = 2; i < n; i++)
{
// 只要找到一个因数就完成了
if(n%i == 0)
{
return false;
}
}
// 没有因数!
return true;
}
// 找出一个数字所有素数因数的暴力方法
// 所找出的数字不仅应该是n的因数,而且必须是素数
public static void printPrimeFactors(int n, int start)
{
for(int i = start; i < n; i++)
{
if(n%i == 0 && isPrime(i))
{
System.out.print(i + " ");
}
}
}
public static void main(String[] args) throws IOException
{
// 读入值,直到用户想退出
int n = readInt("Enter a number, or -1 to quit: ");
while(n > 0)
{
System.out.print(n + " : ");
printPrimeFactors(n, 2);
System.out.println();
n = readInt("Enter a number, or -1 to quit: ");
}
} // main
} // PrimeFactorsTest
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?