當前位置:首頁 » 編程語言 » 完數c語言

完數c語言

發布時間: 2022-04-17 05:15:23

c語言 完數

#include<stdio.h>
void main()
{
int t, a=1,m=1;//a表示因子,sum表示因子和
while(m<1000)
{
int sum=0; //應該放在循環裡面,每次都要清0
for(a=1;a< m;a++) // 這里等號千萬不能要,要了它一定能整除,就會沒有結果
{
if(m%a==0)
{
t=a;
sum+=t;
}
}

if(sum ==m) //判斷應該在循環for循環外面
printf("%4d",m);
m++;

⑵ 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語言編輯器,新建一個C語言空白文件:

⑷ c語言求解完數!

#include<stdio.h>
int main()
{
int i,j,sum=0;
int count=0;//計算完數的和
for(i=2;i<1000;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0) sum=sum+j;
}
if(sum==i)
{
printf("%d 是完數\n",i);
count+=i;
}
sum=0;
}

printf("完數和為: %d\n",count);
return 0;
}

⑸ C語言中的完數是什麼意思

歐幾里德證明了:一個偶數是完數,當且僅當它具有如下形式:2^(p-1)*(2^p-1)
其中2^p-1是素數

完全數(Perfect number)是一些特殊的自然數:它所有的真因子(即除了本身以外的約數
)的和,恰好等於它本身。

例如:第一個完全數是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,8128。

古希臘數學家歐幾里德是通過 2^(n-1)*(2^n-1) 的表達式發現頭四個完全數的。

當 n = 2^1*(2^2-1) = 6
當 n = 2^2*(2^3-1) = 28
當 n = 2^4*(2^5-1) = 496
當 n = 2^6*(2^7-1) = 8128
歐幾里德證明了:一個偶數是完數,當且僅當它具有如下形式:2^(n-1)*(2^n -1)。

盡管沒有發現奇完數,但是當代數學家奧斯丁·歐爾(Oystein Ore)證明,若有奇完全
數,則其形狀必然是12p + 1或36p + 9的形式,其中p是素數。在1018以下的自然數中奇完
數是不存在的。

⑹ c語言編程題 :判斷一個數是不是完數

C語言程序如下:

#include "stdio.h"

int main()

{

int n,i,sum=0;//定義一個存放因子和的變數,以及需要判斷的數n,和循環條件用到的i

printf("請輸入需要判斷的數:");

scanf("%d",&n);//存放需要判斷的數n

for(i=1;i<n;i++)//循環條件找出因子並累加

{

if(n%i==0)

sum+=i;

}

if(n==sum)

printf("%d 是完數 ",n);

else

printf("%d 不是完數 ",n);

return 0;

}

(6)完數c語言擴展閱讀:

程序思路

假設一個數為n,我們可以用循環條件,讓n分別和1,2,3,4,5……n-1進行判斷是否能被整除,我們可以通過取余(%)的方法來進行判斷。如果判斷出來取余結果為0,那麼就把這些因子全部加起來,得到因子的和。

接下來,將因子的和與n進行比較,如果相等,那麼就是完數,反之不是完數。

判斷一個完數,就是運用基本輸入函數(scanf),將要判斷的數據輸入進來,之後運用循環條件來判斷。

⑺ 用C語言列印「完數」

// 本程序演示一個數如果恰好等於它的因子之和,這個數就稱為「完數」。例如6=1+2+3.編程找出1000以內的所有完數
#include"stdio.h"
main()
{
int i,j,s,sum;
printf("完數:\n") ;
sum=0;
for(i=2;i<=1000;i++)
{ s=0; ;//此處s=0一定要加,因為前幾次循環的時候s的值已經改變 。清零
for(j=1;j<i;j++)
{
if(i%j==0)//這一塊是如果能夠整除,那麼就是該數的因子,我們累加起來

{s+=j;
}
}
if(s==i) //因子的和與原數比較,如果正確就輸出
{printf("%d\n",i);
sum++;
}
}
printf("完數的個數:%d\n",sum);
}

⑻ c語言 完數

你的程序我幫你改完了,主要是把if(sum==n)的判斷移到循環外面.
求完全數的完整的C語言程序如下:
#include <stdio.h>
int main()
{
int sum,n,i,N;
scanf("%d",&N);
for(n=2;n<=N;n++)
{
sum=0;
for(i=1;i<n;i++)
if(n%i==0)
sum=sum+i;
if(sum==n)
{
printf("%d its factors are",n);
for(i=1;i<n;i++)
{
if(n%i==0)
printf(" %d",i);
}
printf("\n");
}
}
return 0;
}
運行結果:
1000
6 its factors are 1 2 3
28 its factors are 1 2 4 7 14
496 its factors are 1 2 4 8 16 31 62 124 248

⑼ 完數 c語言

#include<stdio.h>

voidmain(){
inta[200];
intn,i,j,k,s;
for(n=1;n<=1000;n++){
j=0;
s=0;
for(i=1;i<=n/2;i++){
if((n%i)==0){
a[j]=i;
s+=i;
j++;
}
}
if(n==s){
printf("%d是完數,其因數是: ",n);
for(k=0;k<j;k++)
printf("%d",a[k]);
printf(" ");
}
}
}

⑽ C語言如何編寫完數程序

#include<stdio.h>
void main()
{
int i,t(0),m;
printf("請輸入一個數:");
scnaf("%d",&m);
for(i=1;i<m;i++)
{
if(m%i==0)
t=t+i;
}
if (t==m)
printf("該數是完數");
else
printf("該數不是完數");
}

熱點內容
linuxsnmp查看 發布:2025-01-22 12:17:49 瀏覽:37
安卓數據線怎麼接藍牙 發布:2025-01-22 12:07:29 瀏覽:229
扣扣賬號多少次密碼不正確會被封 發布:2025-01-22 12:07:19 瀏覽:400
python是32位還是64位 發布:2025-01-22 11:51:41 瀏覽:894
鈴聲多多緩存文件夾 發布:2025-01-22 11:51:39 瀏覽:724
java按鍵精靈 發布:2025-01-22 11:49:31 瀏覽:81
python配色 發布:2025-01-22 11:46:40 瀏覽:613
安卓如何使用屏幕錄制 發布:2025-01-22 11:46:36 瀏覽:777
phpencoding 發布:2025-01-22 11:46:35 瀏覽:257
安卓235玩什麼 發布:2025-01-22 11:37:40 瀏覽:217