Given any positive integer N, you are supposed to find all of its prime factors, and write them in the format N = p1k1×p2k2×⋯×pmkm.
Input Specification:
Each input file contains one test case which gives a positive integer N in the range of long int.
Output Specification:
Factor N in the format N = p1^k1*p2^k2*…*pm^km, where pi's are prime factors of N in increasing order, and the exponent ki is the number of pi -- hence when there is only one pi, ki is 1 and must NOT be printed out.
Note: in case N has no prime factor, simply print the only factor it has.
Sample Input:
97532468
Sample Output:
97532468=2^2*11*17*101*1291
题目分析
质因子分解,即为将一个数分解为若干个素数乘积的形式。如:30=2*3*5,180=2^2*3^2*5
思路分析
判断一个数是否为素数,找出素数表并保存在全局数组中;
创建结构体数组fac,记录质因子及其幂次;
分解整数n,如果n=1,无法分解,直接输出;
n不为1,遍历素数表,检查素数表当前素数是否可以被n整除,如果可以,则该素数即为质因子,然后计算该素数的幂次,即通过循环的方式用n不断除以该素数(n/=该素数),直到无法整除(n%该素数!=0),将幂次计入结构体数组fac中;
如果分解完之后n仍不为1,说明n本身就是一个素数,将n也添加到fac中.
一.求素数的两个方法
1.判断素数(一般方法)
1)isPrime()
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <


430

被折叠的 条评论
为什么被折叠?



