笔记
1.素数,前50个数内是素数的数
已知x=2为素数,那么与2成倍数关系的数都不是素数,所以将他们划掉;
将x的值一次增加,只要是倍数,就不是素数。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
boolean[] isprime = new boolean[50] ;
for(int i=2;i<isprime.length;++i){
isprime[i]=true;
}
for(int i=2;i<isprime.length;++i){
for(int j=2;i*j<isprime.length;j++){
if(isprime[i]){
isprime[i*j]=false;
}
}
}
for(int i=2;i<isprime.length;++i){
if(isprime[i]){
System.out.print(i+" ");
}
}
}
}
2.素数,前50个数内是素数的数
判断这个数是否被已知的所有素数整除,且这个数在规定的范围内,若能,则这个数不是素数。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] primes = new int [50];
primes[0]=2;
int cnt=1;
look:for(int x=3;cnt<50;++x){
for(int i=0;i<cnt;++i){
if(x%primes[i]==0)
continue look;
}
primes[cnt++]=x;
}
for(int k:primes){
System.out.println(k);
}
}
}
3.最基础的求法
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] prime = new int[100];
int n;
int cnt=0;
n=in.nextInt();
here: for(int i=2;i<=n;++i){
for(int j=2;j<=Math.sqrt((double)i);++j){
if(i%j==0){
continue here;
}
}
prime[cnt++]=i;
}
for(int i=0;i<prime.length;++i){
if(prime[i]!=0)
System.out.print(prime[i]+" ");
}
}
}