『壹』 c語言編程:求出1000以內的完全數(詳細講解一下思路)
#include<stdio.h>
main()
{
int i,j,sum;
for(i=2;i<1000;i++) //完全數i的范圍2-1000
{
sum=0;
for(j=1;j<=i/2;j++) //求i的因子,j<=i/2為了減少循環次數
{
if(i%j==0) //如果i除以j的余數為0,就說明是因子
sum=sum+j;//求因子的和
}
if(sum==i) //如果因子等於i,就說明是完全數
printf("%4d",i); //輸出i
}
}
『貳』 用C語言編程:輸出2~100之間所有完數,完數是指該數各因子之和等於該數本身
C語言程序如下:
#include <stdio.h>
int main()
{
long int i,j,sum;
for(i=2;i<100;i++)
{ sum=0;
for(j=2;j<=i/2;j++)
{
if(i%j==0)
{
sum=sum+j;
}
}
if(i==sum+1)
printf("%d ",i);
}
}
(2)完全數c語言程序結構分析擴展閱讀:
如果一個數恰好等於它的因子之和,則稱該數為「完全數」。
第一個完全數是6,它有約數1、2、3、6,除去它本身6外,其餘3個數相加,1+2+3=6。
第二個完全數是28,它有約數1、2、4、7、14、28,除去它本身28外,其餘5個數相加,1+2+4+7+14=28。
第三個完全數是496,有約數1、2、4、8、16、31、62、124、248、496,除去其本身496外,其餘9個數相加,1+2+4+8+16+31+62+124+248=496。後面的完全數還有8128、33550336等等。
『叄』 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);
}
時間太緊,沒注意程序的簡潔性和效率,這個需要你自己改了!
『肆』 用C語言編寫「判斷一個數是否為完數」!
1、首先打開C語言的編輯軟體,這里是使用VS2017版,在c語言的文件中寫入頭文件和主函數備用:
『伍』 用c語言怎樣編寫n個數以內的完全數的程序
完全數是指所有真因子之和等於該數本身的正整數。可以使用以下C語言代碼來找出小於等於n(n為正整數)的完全數:
```c
#include <stdio.h>
int main() {
int n, i, j, sum;
printf("請輸入一個正整數n:");
scanf("%d", &n);
for (i = 1; i <= n; ++i) {
sum = 0;
for (j = 1; j <= i / 2; ++j) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
printf("%d\n", i);
}
}
return 0;
}
```
解釋如下:
1. 首先,定義變數n、i、j和sum。
2. 要求用戶輸入n。
3. 使用兩個嵌套的循環來遍歷從1到n的每個數字。
4. 內部手宴循備肢環計算數字i的所有真因子之和。
5. 如果該總和等於仿薯世數字i本身,則輸出該數字,即它是一個完全數。
6. 最後返回0結束程序。
注意,此代碼中包含了一個優化,即內部循環只需要遍歷1到i的一半,因為大於i的一半的因子已經在之前被計算過了。
『陸』 c語言判斷完全數
#include<stdio.h>
intIsPerfect(intn)
{inti,s=1;
for(i=2;i<=n/2;i++)
if(n%i==0)s+=i;
returns==n;
}
intmain()
{intn;
scanf("%d",&n);
printf("%dis%saperfectnumber
",n,IsPerfect(n)?"":"not");
return0;
}
『柒』 完美數 C語言編程
完美數(Perfect number),又稱完全數或完備數,是一些特殊的自然數。該數所有的真因子(即除了自身以外的約數)的和(即因子函數),恰好等於本身。如果一個數恰好等於它的因子之和,則稱該數為「完美數」。
所以根據定義,可以得到判斷完美數的程序:
intis_perfect_number(intn)//對n進行判斷,如果是完美數,返回1,否則返回0.
{
intj,sum=0;
sum=0;
for(j=1;j<n;j++)//對每個小於n的正數進行遍歷,
if(n%j==0)//如果是因子,
sum=sum+j;//累加到sum上。
returnsum==n;//返回結果。
}