【商汤科技2019校招】计算机视觉研究员笔试

版权声明:本文为博主原创文章,欢迎大家转载,但是要注明我的文章地址。 https://blog.csdn.net/program_developer/article/details/83067233

1. 半质数的个数

题目详情:

质数是大家熟知的概念,我们定义一个半质数的概念:如果一个数恰好是两个质数的乘积(可以相同),则称它为半质数。前几个半质数是 4, 6, 9, 10, 14, 15, 21, 22, 25, 26。我们的问题是,输入一个正整数N,问在小于等于N的正整数中有多少个半质数?

输入:

输入一行,输入一个正整数N。

输出:

小于等于N的正整数中有多少个半质数。

输入样例:

10

输出样例:

 4

Hint:

 小于等于10的正整数中是半质数的为:4、6、9、10

已经AC的代码:


import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int count = 0;
		for(int i = 0; i<=N; i++) {
			if(is2PrimeNumber(i)==true) {
				count++;
			}
		}
		System.out.println(count);
	}
	

	public static boolean is2PrimeNumber(int n) {
		int count = (int) Math.sqrt(n);
		for (int i = 2; i <= count; i++) {
			if (isPrimeNumber(i)){
				int j = n / i;
				if ((i * j == n) && isPrimeNumber(j)){
					return true;
				}
			}
		}
		return false;
	}
	
	public static boolean isPrimeNumber(int n){
		int i;
		for (i = 2; i <= n; i++){
			if (0 == (n % i))
				break;
		}
		return i == n;
	}

	
}

Reference:

【1】https://blog.csdn.net/xiaojimanman/article/details/20062179?utm_source=blogxgwz1

【2】http://hero.csdn.net/Question/Details?ID=287&ExamID=282

猜你喜欢

转载自blog.csdn.net/program_developer/article/details/83067233
今日推荐