⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1406 完数.cpp

📁 威士忌的HDU题解.大概有260多题的源码。对于学习非常有好处。
💻 CPP
字号:
/*
1406 完数
Time Limit : 1000 ms  Memory Limit : 32768 K  Output Limit : 256 K

15 MS 344 KB 874 B 
GUN C++
*/
#include <iostream.h>
#include <math.h>
using namespace std;

const int Max=10000;

int test(int n)
{
   int i,sum=0;
   int t=(int)sqrt(n);//类似于折半查找
   for(i=2;i<=t;i++)
   {
       if(n%i==0)//判断n是否为素数,如果是素数就不是完数
       {
           if(n/i!=i)   sum+=i+n/i;
           else sum+=n/i;
       }
   }
   sum+=1;
   if(sum==n)   return 1;
   else return 0;
}

int main()
{
    int t,ca,num1,num2,cb,temp;
    int ans;
    cin>>t;
    for(ca=0;ca<t;ca++)
    {
        cin>>num1>>num2;
        if(num1>num2)
        {   temp=num1;num1=num2;num2=temp;}
        for(cb=num1,ans=0;cb<=num2;cb++)
        {
            if(test(cb)==1)
            {   ans++;}
        }
        cout<<ans<<endl;
    }
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -