题目链接:1332: Prime Factors
Description
I’ll give you a number , please tell me how many different prime factors in this number.
Input
There is multiple test cases , in each test case there is only one line contains a number N(2<=N<=100000). Process to the end of file.
Output
For each test case , output one line contains one number , indicating different prime factor in the number N.
Sample Input
2
16
124
1235
12346
Sample Output
1
1
2
3
2
HINT
2 = 2
16 = 2 × 2 × 2 × 2
124 = 2 × 2 × 31
1235 = 5 × 13 × 19
12346 = 2 × 6173
分析?
水题,,,前面几道题目做的我头疼,来个简单的缓缓。
代码?
/**
* Time 271ms
* @author wowpH
* @version 1.0
* @date 2019年6月28日下午6:50:09
* Environment: Windows 10
* IDE Version: Eclipse 2019-3
* JDK Version: JDK1.8.0_112
*/
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] primeNumbersTable = new int[10000];
primeNumbersTable[0] = 2;
int numOfPrimeNumber = 1;
boolean primeFlag;
int max;
for (int i = 3; i < 100000; i += 2) {
primeFlag = true;
max = (int) Math.sqrt(i);
for (int j = 0; primeNumbersTable[j] <= max; ++j) {
if (0 == i % primeNumbersTable[j]) {
primeFlag = false;
break;
}
}
if (true == primeFlag) {
primeNumbersTable[numOfPrimeNumber++] = i;
}
}
Scanner sc = new Scanner(System.in);
int N, ans;
while (sc.hasNext()) {
N = sc.nextInt();
ans = 0;
for (int i = 0; primeNumbersTable[i] <= N; ++i) {
if (0 == N % primeNumbersTable[i]) {
++ans;
}
}
System.out.println(ans);
}
sc.close();
}
}