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 stubScanner 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】/xiaojimanman/article/details/2179?utm_source=blogxgwz1
【2】/Question/Details?ID=287&ExamID=282