pat甲级1059. Prime Factors (25)

欢迎访问我的pat甲级题解目录哦https://blog.csdn.net/richenyunqi/article/details/84981078

题目描述

pat甲级1059. Prime Factors (25)_第1张图片

算法设计

这道题要求求出给定整数N的质因子。先建立一个素数表,建立素数表的方法我在pat乙级1007. 素数对猜想 (20)——埃氏筛法已经阐述过。然后遍历这个素数表,找到所有能被N整除的素数,对于该素数的次数,可以通过不断整除该素数直到N不再能整除这个素数为止的方法来得到。可以用map来储存素数和对应的次数。

注意点

(1)测试点3测试的是N为1的情况,这种情况要进行特殊处理,输出1 。

(2)素数表开到10^5就可以了,不要以给定的数字N为素数表的大小,因为给定的N会很大,会造成超时

C++代码

#include
using namespace std;
const int MAX=1e5;
vectorprime;
vectorf(MAX,false);
void findPrime(){
    for(int i=2;ifactor;
    for(int i=0;ifirst);
        if(i->second>1)
            printf("^%d",i->second);
    }
    return 0;
}

你可能感兴趣的:(pat甲级)