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

判斷完數c語言

發布時間: 2022-10-05 06:13:29

c語言判斷區間內完數的個數

你的程序沒有錯誤,超時的問題主要是因為你的找完數的演算法有問題,其中有大量的計算是無用的。比如6是一個完數,按照你的演算法是用6除以1至5來找出所有因子,這樣你就用了5次計算,實際有用的計算到3就可以了,這樣就少了2次計算,節省了時間。對於越大的完數,無用的計算就越多。找完數演算法可以這樣優化:一個數的所有因子中最大的因子必定小於等於該數的一半(除了其本身以外),所以可以把 for(j=1; j<i; j++) 中的條件改為 for(j=1; j<=(int)(i/2); j++) ,這樣的話,計算次數就減少了至少一半,所花費的時間也就少了。

㈡ C語言如何判斷一個數是完數

1、打開c語言編輯器,新建一個C語言空白文件:
2、然後就可以開始編寫代碼了,這里完數的意思就是一個數等於它的因子之和,比如6的因子為1、2、3,而6剛好是這些數之和。根據完數的定義,程序要輸入一個數的范圍,接著計算出所選取的整數i的因子,將各因子累加到變數s
,若s等於i,則可確認i為完數:
3、最後運行查詢,輸入一個范圍,程序就會自動查找這個范圍內的數字里有那些完數,計算完成後會將其結果列印出來:

㈢ c語言完數判斷

#include<stdio.h>
void
iswanshu(int
x);
void
main()
{
int
a;
printf("判斷是否是完數:\n請輸入一個整數:");
scanf("%d",&a);
iswanshu(a);//調用下面的函數
}
//定義一個判斷是否是完數的函數
void
iswanshu(int
x)
{
int
i,k;
for(i=1;i<x;i++)
{
if
(x%i=0)
k=k+i;//如果被判斷的那個數整除i余數為0則累加到k
}
//如果k等於x那輸出的數就是完數
if(k=x)
{
printf("%d是完數\n",x);
printf("%d=1",x);
for(i=2;i<x;i++)
{
if
(x%i=0)
printf("+%d",i);
}
printf("\n");
}
else
printf("%d不是完數!",x);
}

㈣ c語言判斷一個數是否是完數

#include<stdio.h>

int main()
{
int n;
scanf("%d",&n);

int i,p=1;
for(i=2;i*i<=n;i++)
{
if(n%i==0)
{
if(i*i!=n)
p+=(i+n/i);
else
p+=i;
}
}
if(p==n)
printf("Yes\n");
else
printf("No\n");

return 0;
}

㈤ c語言完數判斷

#include<stdio.h>

void iswanshu(int x);

void main()

{

int a;

printf("判斷是否是完數:\n請輸入一個整數:");

scanf("%d",&a);

iswanshu(a);//調用下面的函數

}

//定義一個判斷是否是完數的函數

void iswanshu(int x)

{

int i,k;

for(i=1;i<x;i++)

{

if (x%i=0) k=k+i;//如果被判斷的那個數整除i余數為0則累加到k

}

//如果k等於x那輸出的數就是完數

if(k=x)

{

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

printf("%d=1",x);

for(i=2;i<x;i++)

{

if (x%i=0) printf("+%d",i);

}

printf("\n");

}

else

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

}

㈥ 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語言判斷完全數

#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語言:編寫一個函數,輸出一批數,判斷其中有無完數。

看代碼,除了主函數語句printf("("%d是一個完數\n",a[i]);
中a[i]出界外,沒有什麼問題。
如果去年這一句後仍然還有問題,可以考慮是不是有在漢字輸入狀態下輸入命令或標點的情況。

熱點內容
循跡小車演算法 發布:2024-12-22 22:28:41 瀏覽:82
scss一次編譯一直生成隨機數 發布:2024-12-22 22:04:24 瀏覽:956
嫁接睫毛加密 發布:2024-12-22 21:50:12 瀏覽:975
linuxbin文件的安裝 發布:2024-12-22 21:46:07 瀏覽:798
vlcforandroid下載 發布:2024-12-22 21:45:26 瀏覽:664
電腦做網關把數據發送至伺服器 發布:2024-12-22 21:44:50 瀏覽:432
新華三代理什麼牌子的伺服器 發布:2024-12-22 21:33:21 瀏覽:342
歡太會員密碼是什麼 發布:2024-12-22 20:57:28 瀏覽:74
sqllocaldb 發布:2024-12-22 20:07:08 瀏覽:126
如何找到我的伺服器 發布:2024-12-22 19:52:14 瀏覽:301