版权声明:本文为博主原创文章,欢迎大家转载,但是要注明我的文章地址。 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