人对素数的基本想法:
package welcome;
import java.util.Scanner;
public class 素数1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int x = in.nextInt();
boolean isPrime = true;
if(x == 1)
isPrime = false;
for(int i = 2; i < x-1; i++)
{
if(x % i == 0)
{
isPrime = false;
break;
}
}
if(isPrime)
{
System.out.println("它是素数");
}
else
{
System.out.println("它不是素数");
}
System.exit(0);
}
}
package welcome;
import java.util.Scanner; public class 素数2 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int x = in.nextInt(); boolean isPrime = true; if(x == 1 || x % 2 == 0) { isPrime = false; } else { for(int i = 3; i < Math.sqrt(x); i+=2) { if(x % i == 0) isPrime = true; } } if(isPrime) { System.out.println("它是素数"); } else { System.out.println("它不是素数"); } } }高级一点的想法:
package welcome; public class 构造前50个素数的表 { public static void main(String[] args) { // TODO Auto-generated method stub //判断是否能被已知的素数整除 int [] primes = new int[50]; primes[0] = 2; int cnt = 1; Main_loop: for(int x = 3; cnt < primes.length; x++) { for(int i = 0; i < cnt; i++) //*****注意cnt的双重作用 { if(x % primes[i] == 0) { continue Main_loop; } } primes[cnt++] = x; //除了cnt,注意自加的妙用 } for(int k: primes) { System.out.print(k+" "); } System.out.println(); } }
package welcome; public class 计算机想法构造素数表 { public static void main(String[] args) { // TODO Auto-generated method stub boolean [] isPrime = new boolean[100]; for(int i = 2; i < isPrime.length; i++) { isPrime[i] = true; } for(int i = 2; i < isPrime.length; i++) { if(isPrime[i] == true) { for(int k = 2; k*i < isPrime.length; k++) { isPrime[k*i] = false; } } } for(int i = 0; i < isPrime.length; i++) { if(isPrime[i]) { System.out.print(i+" "); } } System.out.println(); } }