• 【CodeVS】1792 分解质因数


    1792 分解质因数

    时间限制: 1 s
    空间限制: 128000 KB
    题目等级 : 青铜 Bronze


    题目描述 Description

    编写一个把整数N分解为质因数乘积的程序。

    输入描述 Input Description

    输入一个整数 N

    输出描述 Output Description

    输出 分解质因数 。拆成几个质数相乘的形式,质数必须从小到大相乘

    样例输入 Sample Input

    756

    样例输出 Sample Output

    756=2*2*3*3*3*7

    数据范围及提示 Data Size & Hint

    范围在longint内。不是高精度。


    随手水一个,它既然归到递归里,我也没办法,强行递归。。

    #include<iostream>
    #include<cstdio>
    #include<cmath>

    long long n;
    int num[100000],cnt;
    bool IsP(long long a)
    {
        int m=sqrt(a+0.1);
        for(int i=2;i<=m;i++)
        {
            if(a%i==0)return false;
        }
        return true;
    }
    void dfs()
    {
        if(n==1)return;
        for(int i=2;i<=n;i++)
        {
            if(n%i==0&&IsP(i))
            {
                num[cnt++]=i;
                n/=i;
                dfs();
            }
        }
    }
    int main()
    {
        scanf("%d",&n);
            printf("%d=",n);
        dfs();
        for(int i=0;i<cnt-1;i++)
        {
            printf("%d*",num[i]);
        }
        printf("%d",num[cnt-1]);
        return 0;
    }



    优化很多的。比如预处理打素数表,改成迭代。在这里不再赘述,因为实在只是玩玩水。。


  • 相关阅读:
    bzoj3223: Tyvj 1729 文艺平衡树
    bzoj1014: [JSOI2008]火星人prefix
    bzoj3231: [Sdoi2008]递归数列
    bzoj2282: [Sdoi2011]消防
    bzoj3195: [Jxoi2012]奇怪的道路
    成员内部类 局部内部类 匿名内部类
    静态代码块 构造代码块
    父类子类转换
    clone()方法
    后缀表达式求值
  • 原文地址:https://www.cnblogs.com/huibixiaoxing/p/6537765.html
Copyright © 2020-2023  润新知