我正在执行一项学校任务,请坚持一些,请寻求帮助。
任务:除数字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");
}
}
}
}
查看此页面,有很多算法可以找到质数: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