c語言完美數
㈠ 運用c語言輸出100以內所有的完全數
1、首先打開vs 2017軟體,打開一個准備好的工程,新建一個C語言文件,先寫入頭文件和main函數,裡面定義需要的用到的4個變數。
㈡ 完美數 C語言編程
1、因子不包含數本身。所以for循環條件應該是小於2、在判斷每個數前沒有初始化sum。所以在外循環後面加上sum=13、不是每判斷一個數都要換行,而是在有效數的時候才進行。所以移換行語句到判斷語句內 代碼如下,已測試通過:void main()
{
int j,i,sum=1;
for(i=6;i<=1000;i++)
{
for(j=2;j<i;j++)
if((i%j)==0)
sum+=j; if(i-sum==0)
{
printf("%d its factors are 1",i);
for(j=2;j<i;j++)
if((i%j)==0)
printf(" %d",j); printf("\n");
}
sum=1;
}
getchar();
}。。。望採納
㈢ C語言求完數
/*完數,即完美數,一個數如果恰好等於除它本身外的因子之和,這個數就稱為完數。例如6=1+2+3.(6的因子是1,2,3)*/
#include<stdio.h>
void main()
{
int i,j,k,h,s,sum;
int a[200];//20個是不夠的
s=0;
sum=0;
for(i=2;i<=1000;i++)
{
s=0;//此處s=0一定要加,因為前幾次循環的時候s的值已經改變
k=0;
for(j=1;j<i;j++)
{
if((i%j)==0){a[k]=j;k++;}
}
for(h=0;h<k;h++)
{
s+=a[h];
}
if(i==s){printf("%d ",i);sum++;}
}
printf("完數的個數:%d\n",sum);
}
時間太緊,沒注意程序的簡潔性和效率,這個需要你自己改了!