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

    在复习质因子分解时候,突然就掉进坑里了,怎么也想不通会存在大于根号N的质因子。

    后来想明白了,发现自己真是好傻X。其实只要构造一下。比如说一个数的质因子是2和17,这个数就是

    34,而34开根号小于6,满足条件= =为了这么个问题,我想了半天。。

    下面是代码

    #include<cmath>
    bool IsPrime(int n)
    {
        if(n<=1)return false;
        int sqr=(int)sqrt((double)n);
        for(int i=1;i<=sqr;i++){
            if(n%i==0)return false;
        }
        return true;
    }
    const int maxn=100;
    int Prime[maxn],pnum;
    bool p[maxn]={false};
    void FindPrime(int r)
    {
        for(int i=1;i<=r;i++){
            if(IsPrime(i)){
                Prime[pnum++]=i;
                p[i]=true;
            }
        }
    }
    struct factor{
        int x;
        int cnt;
    };
    factor factors[10];
    int num=0;
    void divide(int n){
        int sqr=(int)sqrt(1.0*n);
        for(int i=0;i<pnum&&Prime[i]<=sqr;i++){
            if(n%Prime[i]==0){
                factors[num].x=Prime[i];
                factors[num].cnt=0;
                while(n%Prime[i]==0){
                    factors[num].cnt++;
                    n/=Prime[i];
                }
                num++;
            }
        }
        if(n!=1){
            factors[num].x=n;
            factors[num].cnt=1;
            num++;
        }
    }


  • 相关阅读:
    vim 常用命令
    centos 安装mysql
    centos部署ftp
    centos 6.8部署nginx
    ndk学习16: unix domain socket
    ndk学习14: 进程
    ndk学习13: proc
    ndk学习11: linux内存管理
    ndk学习10: linux文件系统
    ndk学习9: 动态使用共享库
  • 原文地址:https://www.cnblogs.com/MalcolmMeng/p/8442971.html
Copyright © 2011-2022 走看看