zoukankan      html  css  js  c++  java
  • 分解质因数

    题目描述
    今天数学课上,桐桐学习了质数的知识:一个正整数如果只能被1和它本身整除,那么这个整数便是质数。桐桐就想:任意一个正整数是否都能分解成若干个质数相乘的形式呢?输入一个正整数n,把它分解成质因子相乘的形式,如果为质数则输出该数本身。如:36=2×2×3×3;19=19。你能帮助桐桐解决这个难题吗?

    输入
    输入一个正整数n(2≤n≤109)

    输出
    把它分解成质因子相乘的形式,如果为质数则输出该数本身,乘数从小到大输出。

    样例输入
    复制样例数据
    99
    样例输出
    99=3311

    一开始,判断是素数的时候。应该5=5.我直接输出的5.真的是,以为我算法有问题。疯狂查找其他的算法。难得玩啊。

    #include <iostream>
    #include <cmath>
    using namespace std;
    int main()
    {
        int n,i,x;
        int flag=0;
        cin>>n;
        x=sqrt(n);
        for(i=2;i<=x;i++)
        {
            if(n%i==0)
            {
                if(flag==0)
                cout<<n<<"=";
                cout<<i<<"*";
                flag=1;
                n=n/i;
                x=sqrt(n);
                i=i-1;
            }
        }
        cout<<n<<endl;
        return 0;
    }
    
    

    上面是AC之前的。

    下面是AC后的。

    #include <iostream>
    #include <cmath>
    bool isprime(int n)
    {
        int i;
        for(i=2;i*i<=n;i++)
        {
            if(n%i==0)
            return false;
        }
    
            return true;
    }
    using namespace std;
    int main()
    {
        int n,i,x,a;
        int flag=0;
        cin>>n;
        x=sqrt(n);
        a=isprime(n);
        if(!a)
        {
            for(i=2;i<=x;i++)
        {
            if(n%i==0)
            {
                if(flag==0)
                cout<<n<<"=";
                cout<<i<<"*";
                flag=1;
                n=n/i;
                x=sqrt(n);
                i=i-1;
            }
        }
        cout<<n<<endl;
        }
        if(a)
            cout<<n<<"="<<n<<endl;
    
        return 0;
    }
    

    菜鸟一枚,以前啥也没学。

  • 相关阅读:
    正则表达式中?=和?:和?!的理解
    Python isinstance() 函数
    什么是REST架构
    [iOS常见问题] 关于使用QQ做第三方登录的问题!
    js与webview 常用交互代码
    AFNetworking 使用 核心代码
    NSString / NSData / char* 类型之间的转换
    集合视图 代码
    IOS面试问题总结
    UIViewController的生命周期及iOS程序执行顺序
  • 原文地址:https://www.cnblogs.com/skyleafcoder/p/12319604.html
Copyright © 2011-2022 走看看