一个数是奇妙数,当且仅当所有小于它的约数加起来比它大,例如12除本身外的约数有1,2,3,4,6,它们的和为16,因此12是奇妙数。给定整数N,求不超过N的奇妙数有多少个。
比如输入20
输出为3
写个判断奇妙数的函数
#include <iostream>
using namespace std;
int qm(int n)
{
int sum = 0;
for(int i=1;i<n;i++)
if(n%i==0)
sum += i;
if(sum > n)
return 1;
return 0;
}
int main()
{
int N,count=0;
cin>>N;
for(int i=1;i<=N;i++)
if(qm(i) == 1)
count++;
cout<<count;
}