算法的一些小技巧汇总

1、位运算

2、对于下面这种要求:

每行输入一个n,1<=n<=10^9 

当然不能设置一个数组:a[1000000000]

只能将n作为输入,它输入多少就处理多大的数

3、获取一个数的质因数

public static void getZ(int n){
	 int ss=n;
	// 求一个数的素因数
	List<Integer> list = new ArrayList<>();
	for (int i = 2; i <= n; i++) {
		while (n != i) {
			if (n % i != 0) {
				break;// 不能整除肯定不是因数,能够整除在这里一定是质数。因为所有的2,3,5,7
						// 都被除完之后。剩下的因数只能是奇数,且是质数。
			}
			list.add(Integer.valueOf(i));
			n = n / i;
		}
	}
	list.add(Integer.valueOf(n));
	System.out.println(ss+"="+list);
}

  

原文地址:https://www.cnblogs.com/boucher/p/5849463.html