java算法题——痛苦并快乐着的求素数个数

求素数个数

  • 题目以及要求:
  • 代码:

题目以及要求:

java算法题——痛苦并快乐着的求素数个数_第1张图片

代码:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class 素数个数 {
     
	public static void main(String[] args) {
     
		Scanner sc = new Scanner(System.in);
		long num=sc.nextLong();
		int p=1;
		if (num>5) {
     
			p=2;
		}	
		List<Integer> list=new ArrayList<Integer>();
		for (int i = 3; i <=num; i+=((i+2)%5==0)?4:2) {
     
			int m=0;
				for (int j =0; j <list.size(); j++) {
     
					if (i%list.get(j)==0) {
     
						m=1;
						break;
					}
				}
				if (m==0) {
     
					p++;
					if(i<10000){
     
					list.add(i);}
				}
		}
		
		System.out.println(p);
	}
}

虽然进行了部分的优化,但是当数据很大时输出的时间会超过两秒,所以还是需要进一步的优化。

你可能感兴趣的:(算法题)