#include<stdio.h>
#include<math.h>
int main()
{
int rem, num, i, sum;
sum=0;
num=28;
for(i=1;i<num;i++)
{
if(num%i==0)
{
rem=num%i;
sum=sum+rem;
}
}
if(sum==num)
{
printf("perfect number");
}
else
printf("not perfect");
}
なぜこれを行うのか、のすべての適切な除数の合計を取得する必要があります(自然数の適切な約数は、厳密に数よりも小さい約数です)がnum
、実行しているのはrem = num%i
、基本的に常に0
通りnum
で割り切れるi
あなたに確認するものif
なので、何をやっていることは何の意味を作っていません
if(num%i==0)
{
rem=num%i; // here `rem` is always `0` as `num%i == 0`
sum=sum+rem;
}
除数がi
そうであるように、あなたの論理は以下のようになりますので、あなたはあなたの中にすべての除数(i
いつnum
で割り切れるのかで表す)を追加する必要i
がありますsum
if(num%i==0)
{
sum = sum + i;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加