若某整数N的所有因子之和等于N的倍数,则N称为多因子完备数,如数28,其因子之和1+2+4+7+14+28=56=2*28,28是
若某整数N的所有因子之和等于N的倍数,则N称为多因子完备数,如数28,其因子之和1+2+4+7+14+28=56=2*28,28是多因子完备数。求[1,200]之间有多少...
若某整数N的所有因子之和等于N的倍数,则N称为多因子完备数,如数28,其因子之和1+2+4+7+14+28=56=2*28,28是多因子完备数。求[1,200]之间有多少个多因子完备数
用C语言编写;最后答案为4
请用C语言编写 展开
用C语言编写;最后答案为4
请用C语言编写 展开
2个回答
展开全部
#include<stdio.h>
#include<string.h>
int okn(int n)
{
int i;
int sum=0;
for(i=1;i*i<=n;i++)
{
if(n%i==0)
{
sum+=(i+n/i);
}
if(i*i==n)
{
sum-=i;
}
}
return !(sum%n);
}
int main()
{
int i,cnt=0;
for(i=1;i<=200;i++)
{
if(okn(i))
{
printf("%d ",i);
cnt++;
}
}
printf("\n合计:%d\n",cnt);
}
1 6 28 120
合计:4
请按任意键继续. . .
#include<string.h>
int okn(int n)
{
int i;
int sum=0;
for(i=1;i*i<=n;i++)
{
if(n%i==0)
{
sum+=(i+n/i);
}
if(i*i==n)
{
sum-=i;
}
}
return !(sum%n);
}
int main()
{
int i,cnt=0;
for(i=1;i<=200;i++)
{
if(okn(i))
{
printf("%d ",i);
cnt++;
}
}
printf("\n合计:%d\n",cnt);
}
1 6 28 120
合计:4
请按任意键继续. . .
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询