zoukankan      html  css  js  c++  java
  • 算法提高 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;
    }
  • 相关阅读:
    max()和数组里面的max
    NYOJ 超级台阶
    NYOJ Fibonacci数
    floor()向下取整函数
    pow()函数
    HDU 小数化分数 1717
    大端和小端存储
    字节对齐
    CvvImage内存泄漏解决
    01矩阵中,把0的点的行和列都置零
  • 原文地址:https://www.cnblogs.com/TWS-YIFEI/p/6358427.html
Copyright © 2011-2022 走看看