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 + -
显示快捷键?