zoukankan      html  css  js  c++  java
  • 完全数

    自己写了一个完全数的程序

    #include<iostream>
    #include<cmath>
    using namespace std;
    long long n;
    int prime[100],pNum;
    int fx[100],fnum[100];
    int cnt;
    bool isPrime(int n)
    {
        if(n<=1) return false;
        int sqr=(int)sqrt(n*1.0);
        for(int i=2;i<=sqr;i++) if(n%i==0) return false;
        return true;
    }
    int main()
    {
        cin>>n;
        
        long long  s=1;
        //生成一个素数数组 
        for(int i=2;s<n;i++)
        {
            if(isPrime(i)) prime[pNum++]=i,s*=i; 
        }
        
        //cout<<pNum<<endl;
        
        for(int i=2;i<=n;i++)//枚举1-n 
        {
            int num=0;
            int nn = i; //保存n的值 
            int sqr = (int)sqrt(nn*1.0); 
            for(int j=0;j<pNum && prime[j]<=sqr;j++)
            {
                if(nn%prime[j]==0)
                {
                    fx[num]=prime[j];
                    fnum[num]=0;
                    while(nn%prime[j]==0)
                    {
                        fnum[num]++;
                        nn/=prime[j];
                    }
                    num++;
                }
            }
            if(nn!=1)
            {
                fx[num]=nn;
                fnum[num]=1;
                num++;
            }
        
            s = 1;
            long long sum,temp;
            for(int j=0;j<num;j++)
            {
                sum = 0,temp = 1;
                for(int k=0;k<=fnum[j];k++)
                {
                    sum+=temp;
                    temp*=fx[j];
                }    
                s*=sum;
            }
            /*
            cout <<"test n = "<< i << " " << " s = "<<  s << endl;
            for(int j=0;j<num;j++) cout << fx[j] << " ";
            cout << endl;
            for(int j=0;j<num;j++) cout << fnum[j]<<" ";
            cout << endl; 
            */
            if(s-i==i) cnt++;
        } 
        cout << cnt;
        return 0;
    }
  • 相关阅读:
    pandas
    简单的图片滑动&标签页的前进后退
    xpath 语法&元素交互操作&选项卡操作
    Selenium请求库-day5下午
    初始python
    异步多线程下载网页爬取的视频
    python学习-day4上午
    爬虫初试
    爬虫
    内置模块--又称为常用模块
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/9288442.html
Copyright © 2011-2022 走看看