implementación Java Euler contraste en la pantalla con las campanas y silbatos primer alto Dafa

No sé lo que es algoritmos avanzados, ayer Euler tamiz había un hermano mayor, entre la medianoche sin querer decirme
pantalla de Euler:
La principal implicación de esto es que pongo todos los múltiplos del número de Dounong a cabo, y luego el siguiente ciclo cuándo puede pasar directamente a la

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;

public class 求指数 {

public static	ArrayList<Integer> list = new ArrayList<Integer>();
	public static void main(String[] args) {
		long start = System.currentTimeMillis();
		int [] num =getPrime(10000);
//		for (int i :num) {
//			System.out.print(i+" ");
//		}
		long end = System.currentTimeMillis();
		System.out.println();
		System.out.println(end-start);
		

		long start1 = System.currentTimeMillis();
		zhishu(10000);
//		for (int i :list) {
//			System.out.print(i+" ");
//		}
		long end1 = System.currentTimeMillis();
		System.out.println();
		System.out.println(end1-start1);
	}
	//神秘求质数,我也不清楚叫什么名字
	public static void zhishu(int n){
		A:	for (int i = 2; i <n; i++) { 
				int sqrt=(int) Math.sqrt(i);
				for(int num:list){
					if(i%num==0){
						continue A;
					}
					else if(num>sqrt)
						break;
				}
				list.add(i);
			}
		}
	//欧拉筛
	public static int [] getPrime(int n) {
		int [] list=new int[n+1];
		int [] prime =new int[n+1];
		int count=0;
		for(int i =2;i<=n;i++) {
			if(list[i]==0)prime[count++]=i;
			for(int j=0;j<count&&i*prime[j]<=n;j++) {
				list[prime[j]*i]=1;
			}
			
		}
		
		return Arrays.copyOf(prime, count);
		
	}

}

Los resultados se muestran a continuación:
Aquí Insertar imagen Descripción
aparente, la parte superior de la pantalla o Euler

(ง •_•)ง

Liberadas 1449 artículos originales · ganado elogios 10000 + · vistas 1,72 millones +

Supongo que te gusta

Origin blog.csdn.net/a1439775520/article/details/104736513
Recomendado
Clasificación