📄 1406 完数.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 + -