• 算法提高 8-1因式分解


    算法提高 8-1因式分解  
    时间限制:10.0s   内存限制:256.0MB
        
    问题描述
      设计算法,用户输入合数,程序输出若个素数的乘积。例如,输入6,输出2*3。输入20,输出2*2*5。
    样例
      与上面的样例输入对应的输出。
      例:

    数据规模和约定
      输入数据中每一个数在int表示范围内。
     
    整数分解。
    #include <iostream>
    #include <cstdio>
    #include <map>
    
    using namespace std;
    
    int cou=0;
    
    map<int,int> prime_factor(int a){
        map<int,int> res;
        for(int i=2;i*i<a;i++){
            while(a%i==0){
                ++res[i];
                a/=i;
                cou++;
            }
        }
        if(a!=1){
            res[a]++;
            cou++;
        }
        return res;
    }
    
    int main()
    {
        int a;
        scanf("%d",&a);
        map<int,int> ans=prime_factor(a);
        int jud=0;
        for(int i=2;i<=a;i++){
            if(jud==0){
                if(ans[i]>0){
                    printf("%d",i);
                    ans[i]--;
                    jud=1;
                }else{
                    continue;
                }
                while(ans[i]>0){
                    printf("*%d",i);
                    ans[i]--;
                }
            }else{
                while(ans[i]>0){
                    printf("*%d",i);
                    ans[i]--;
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    POJ3186(KB12-O DP)
    POJ1661(KB12-M DP)
    POJ2533(KB12-N LIS)
    POJ1458(KB12-L LCS)
    HDU1160(KB12-J DP)
    HDU1260(KB12-H DP)
    HDU1114(KB12-F DP)
    HDU1024(DP)
    HDU1074(KB12-D 状态压缩dp)
    天梯赛2016-L2
  • 原文地址:https://www.cnblogs.com/TWS-YIFEI/p/6358427.html
Copyright © 2020-2023  润新知