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

完全數c語言

發布時間: 2022-07-19 02:09:16

c語言:完全數程序

如果想顯示完全數的因子的話,用數組存儲比較合適。你的程序有個邏輯錯誤。
if(a%b==0)你忘記還有自身也是自身的因子數,導致後面的判別式永遠不成立,應改為
if(a%b==0&&a!=b)
自己改了下用數組的:
#include<stdio.h>
int
main()
{
int
k[20],a,b,c;
for(a=2;a<=1000;a++)
{c=0;
for(b=1;b<=a;b++)
{
if(a%b==0&&b!=a)
{
k[c]=b;
c++;
}
if(b==a){
int
num=0;
for(int
i=0;i<c;i++)
num=num+k[i];
if(num==a){
printf("%d
",a);
printf("its
factors
is
:
");
for(int
i=0;i<c;i++)
printf("%d
",k[i]);
printf("\n");
}
}
}
}
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語言 完全數 最快演算法

s每次要初始化
有個}犯錯地方了
<=n改成<
#include
void
main()
{int
i,n;
int
s=0;
printf("input
a
number
n(1
評論
0
0
載入更多

㈣ 運用c語言輸出100以內所有的完全數

1、首先打開vs 2017軟體,打開一個准備好的工程,新建一個C語言文件,先寫入頭文件和main函數,裡面定義需要的用到的4個變數。

㈤ c語言完全數問題

int main ()
{
int m,n,a,i,e,f;
scanf("%d %d",&m,&n);
int count=0;//統計m n之間一共多少個符合要求
for(i=m;i<=n;i++)
{
e=sqrt(i+100);//一個數加100
f=sqrt(i+268);//一個數加268
if ( (sqrt(i+100)==e)&& (sqrt(i+268)==f) )
{
count+=1;//計數
printf("%d ",i);//列印
}
}
if( count==0)
{
printf ("no");//在m n之間全部檢測結束,如果count依然等於0,才能列印no
}

return 0;
}
請採納,謝謝。

㈥ C語言求完全數~~

#include<stdio.h>
void isPerfect(int m){ //定義判斷一個數是否為完全數的函數isPerfect
int i,sum=0;
for(i=1;i<=m/2;i++){
if(m%i==0){
sum+=i;
}
}
if(sum==m){
printf("你輸入的這個數是完全數\n");
}
else
printf("你輸入的這個數不是完全數\n");
}
main(){
int a;
printf("請輸入一個整數a:\n");
scanf("%d",&a);
isPerfect(a);//調用這個函數
}

㈦ c語言編寫程序:求出1-100之間的完全數.所謂完全數是指這樣的數,該數剛好等於

#include<stdio.h>

#defineMAX100/*100以內的完全數*/

intmain(void){
intx,temp,sum;/*X表示要判斷的數,temp表示數的因子,sum表示因子之和*/

for(x=1;x<=MAX;x++){
sum=0;
for(temp=1;temp<x;temp++){/*判斷x能否被temp整除,如果可以,則是因子,進行求和*/
if(x%temp==0)
sum=sum+temp;
}
if(sum==x)/*如果是完數,列印輸出*/
printf("%d ",x);
}

putchar(' ');
fflush(stdin);
getch();
return0;
}

運行結果

㈧ 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;
}

熱點內容
java知識點總結 發布:2025-02-01 09:08:32 瀏覽:684
如何在手機版給伺服器加光影 發布:2025-02-01 09:02:14 瀏覽:727
簡單神器安卓系統的哪個好 發布:2025-02-01 09:00:48 瀏覽:354
社保卡密碼如何異地改密碼 發布:2025-02-01 08:57:22 瀏覽:33
什麼安卓平板最好能開120幀 發布:2025-02-01 08:55:58 瀏覽:380
安卓怎麼凍結蘋果id賬號 發布:2025-02-01 08:45:16 瀏覽:639
pythonforosx 發布:2025-02-01 08:43:50 瀏覽:763
ftp建站工具 發布:2025-02-01 08:42:07 瀏覽:532
linux開啟ntp 發布:2025-02-01 08:31:42 瀏覽:284
excel密碼加密 發布:2025-02-01 08:17:01 瀏覽:539