zoukankan      html  css  js  c++  java
  • 唯一分解定理

    包括两个断言:断言1:数n可以以某种方式分解成素数乘积。

                                 断言2:仅有一种这样的因数分解。(除因数排

                                    重外)

    其可化简为

    唯一分解定理,也叫算术基本定理,指的是任意n>=2,都可以分解为    

    对于一个数n,若     ,则n的因子数

    思路,先打个素数表,然后遍历;

    #include <iostream>
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    #define maxn 100000000
    bool vis[maxn];
    int prime[maxn],x,a[100005];
    void oulasai(int n)  //欧拉筛
    {
        for(int i=2;i<=n;i++)
        {
            if(!vis[i]) prime[x++]=i;
            for(int j=0;j<x;j++)
            {
                if(i*prime[j]>n) break;
                vis[i*prime[j]]=true;
                if(i%prime[j]==0) break;
            }
        }
    }
    int main()
    {
        oulasai(10000000);
        ll n;
        int i,index=0;
        scanf("%lld",&n);
        for(i=0;i<x;i++)
        {
            while(n%prime[i]==0)
            {
                a[index++]=prime[i];
                n/=prime[i];
            }
            if(n==1)
                break;
        }
        if(n!=1) a[index++]=n;
        for(i=0;i<index;i++)
        {
            if(i) printf(" ");
            printf("%d",a[i]);
        }
        printf("
    ");
        return 0;
    }
    

    n!=1,说明n是一个非常大的素数。不然欧拉筛可以筛掉

  • 相关阅读:
    XML实例入门2
    XML入门
    XML实例入门1
    C语言复合梯形公式实现定积分
    一些界面库比较以及如何选择界面库
    网络阅读开篇
    vs2008 edit spin 十六进制实现
    jquery操作cookie
    Excel导入到DataTable
    SQL 查找某个字段的首字母
  • 原文地址:https://www.cnblogs.com/skyleafcoder/p/12319566.html
Copyright © 2011-2022 走看看