读取大于零的数字(整数)并输出所有质数的程序

问题描述 投票:-2回答:1

我正在执行一项学校任务,请坚持一些,请寻求帮助。

任务:除数字1、2、3、5、7和9外,只有形式为10k + 1、10k + 3、10k + 7和10k + 9(k为大于零的自然数)的数字会出现作为质数受到质疑。我们还利用了这样一个事实,即仅需通过i以下的质数来检查要测试的每个i≤n(n为输入)的可除性。如果我不能被这些质数整除,那么它也不能被所有其他数(除1及其本身)整除。

提示:您可以假定仅输入> 10。

以及到目前为止我到达的这里:

package task_4;

import java.util.Scanner;

public class task_4 {

    public static void main(String[] args) 
    {
        Scanner scan = new Scanner ( System.in );   //  Scanner
        int n;                  // Input number
        int a;                  // Counter
        a = 1;

        System.out.println("Enter a number");   // Command prompt
        n = scan.nextInt();         // Input scan

        System.out.println("2 is the 1st prime number");    // Output of the first prime number

        for (int i = 3; i <= n; i = i + 2 )         // Run variable i in steps of two
        {

            boolean k = true;               // Truth test

            for ( int j = 2; j<i && k; j++) // 2. Run variable for the divider test
            {
                if ((i % j) == 0)           // If residual value is not prime number
                {
                    k = false;
                }
            }

            if (k)              // If k is true = output
            {
                a = a + 1;                      // Counter increase
                System.out.println(i + " is the " + a + ". Prime number");
            }
        }
    }

}
java math primes
1个回答
0
投票

查看此页面,有很多算法可以找到质数:PrimeNumbers

class PrimeNumbers
{
   public static void main (String[] args)
   {        
       int i =0;
       int num =0;
       //Empty String
       String  primeNumbers = "";

       for (i = 1; i <= 100; i++)         
       {              
          int counter=0;      
          for(num =i; num>=1; num--)
      {
             if(i%num==0)
         {
        counter = counter + 1;
         }
      }
      if (counter ==2)
      {
         //Appended the Prime number to the String
         primeNumbers = primeNumbers + i + " ";
      } 
       }    
       System.out.println("Prime numbers from 1 to 100 are :");
       System.out.println(primeNumbers);
   }
}

输出:

Prime numbers from 1 to 100 are :
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
© www.soinside.com 2019 - 2024. All rights reserved.