zoukankan      html  css  js  c++  java
  • Acwing 197. 阶乘分解

    给定整数 N ,试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的 pipi 和 cici 即可。

    输入格式

    一个整数N。

    输出格式

    N! 分解质因数后的结果,共若干行,每行一对pi,cipi,ci,表示含有pciipici项。按照pipi从小到大的顺序输出。

    数据范围

    1N1061≤N≤106

    输入样例:

    5
    

    输出样例:

    2 3
    3 1
    5 1
    

    样例解释

    5!=120=2335

     思路:

    1. 既然是找质因数的个数,我们就先把到n的所有素数筛出来;
    2. 每个素数在N!里的个数就是(n/p+n/p^2+n/p^3......)
    #include <bits/stdc++.h>
    
    using namespace std;
    typedef long long ll;
    
    const int N= 1e6+10;
    int v[N],prime[N];
    int c[N];
    int cun =0;
    int n;
    int primes(int n)
    {
        for(int i=2;i<=n;i++)
        {
            if(!v[i])
            {
                v[i]=i;
                prime[cun++]=i;
            }
            for(int j =0;j<cun;j++)
            {
                if(prime[j]>n/i||prime[j]>v[i])break;
                v[i*prime[j]]=prime[j];
            }
        }
    }
    int main()
    {
        cin >>n;
        primes(n);
        for(int i=0;i<cun;i++)
        {
            long long p =1;
            while(p<=n)
            {
                p*=prime[i];
                c[prime[i]]+=n/p;
            }
        }
        for(int i=0;i<cun;i++)
        {
            if(c[prime[i]]!=0)
            {
                cout <<prime[i]<<' '<<c[prime[i]]<<endl;
            }
        }
    }
    你的脸上风淡云轻,谁也不知道你的牙咬得有多紧。你走路带着风,谁也不知道你膝盖上仍有曾摔过的伤的淤青。你笑得没心没肺,没人知道你哭起来只能无声落泪。要让人觉得毫不费力,只能背后极其努力。我们没有改变不了的未来,只有不想改变的过去。
  • 相关阅读:
    paramiko连接并配置交换机
    Paramiko-sftp上传和下载文件
    常做的性能测试包含哪些?
    术语?
    什么是【负载测试】和【压力测试】?
    什么是性能?
    web服务器
    兼容性测试?
    可用性测试?
    什么是【回归测试】?
  • 原文地址:https://www.cnblogs.com/wangzhe52xia/p/11377760.html
Copyright © 2011-2022 走看看