判斷完數c語言
㈠ 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]出界外,沒有什麼問題。
如果去年這一句後仍然還有問題,可以考慮是不是有在漢字輸入狀態下輸入命令或標點的情況。