完全数を見つけるプログラム:出力のエラー。完全数は、因子の合計が与えられた数に等しい数です。

サヒイルサブ
#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]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ