WUSTOJ 1332: Prime Factors(Java)

108 篇文章 0 订阅
80 篇文章 18 订阅

题目链接: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();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值