学习目标:算法学习-Day19
**题库:洛谷题库 **
每天保持发布一篇Java或C算法题解!
题目:
一个数如果恰好有两个不同质因子,那它被叫做几乎是质数的数。例如:6,18,24就是几乎是质数的数,而4,8,9,42不是,请你找出 1 到 n 中几乎是质数的数有多少个。
输入格式:
输入仅包含一个整数 n(1≤n≤3000)。
输出格式:
输出 1到 n 中几乎是质数的数的数量。
样例 1 :
输入:
10
输出:
2
样例 2 :
输入:
21
输出:
8
思路:
质因数:一个数的因数,同时又是一个质数,那个因数就叫那个数的质因数。
所以质因数除了2以外,没有其他偶数了。
找一个恰好有两个质因数的数。
首先排除0和1,从2开始找。
由于要在1 --- n中找到所有是质因数的数,
所以 结束条件为i <= n
把这些1---n的数放进数组里,当因子是0 或者 因子是另一个因子的偶数倍时
进行++操作使其变为奇数。
把2单独拿出来作为一个判断条件