本文目錄一覽:
- 1、c語言 完全數
- 2、用C語言求1000以內的完數?
- 3、C語言中的完數是什麼意思
- 4、C語言求完數
- 5、c語言求解完數!
- 6、用C語言打印“完數”
c語言 完全數
#includestdio.h
void main()
{
int i,n;
int s=0;
printf(“input a number N(1N=10000)\n”);
while(scanf(“%d”,n)!=1) //scanf的返回值是成功讀取的參數個數,輸入某個字符就退出循環了
{
s=0; //每次都要清零
for(i=1;i=n;i++)
if(n%i==0)
s=s+i;
if(s==n) //if/else語句應該放在while循環體內,每次循環都會讀入一個數,每個數都要作判斷
printf(“yes\n”);
else
printf(“no\n”);
}
}
用C語言求1000以內的完數?
完數,即完全數(Perfect number),又稱完美數或完備數,是一些特殊的自然數。其所有的真因子(即除了自身以外的約數)的和(即因子函數),恰好等於本身。
根據該定義 可以得出判斷完數的函數如下:
#include stdio.h
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i =n/2; i ++)
if(n%i == 0) s+= i;//統計所有真因子的和。
if(s == n) return 1;//如果與原值相等,則該數為完數。
return 0;//不是完數。
}
根據該函數,只需要對需要打印的範圍內1 ~1000做遍歷,並逐一調用該函數判斷,如果返回1則打印即可。
完整代碼如下:
#include stdio.h
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i =n/2; i ++)
if(n%i == 0) s+= i;//統計所有真因子的和。
if(s == n) return 1;//如果與原值相等,則該數為完數。
return 0;//不是完數。
}
int main()
{
int n;
for(n = 1; n 1000; n++)
if(is_perfect_number(n)) printf(“%d,”,n);
}
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語言求完數
/*完數,即完美數,一個數如果恰好等於除它本身外的因子之和,這個數就稱為完數。例如6=1+2+3.(6的因子是1,2,3)*/
#includestdio.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;ji;j++)
{
if((i%j)==0){a[k]=j;k++;}
}
for(h=0;hk;h++)
{
s+=a[h];
}
if(i==s){printf(“%d “,i);sum++;}
}
printf(“完數的個數:%d\n”,sum);
}
時間太緊,沒注意程序的簡潔性和效率,這個需要你自己改了!
c語言求解完數!
#includestdio.h
int main()
{
int i,j,sum=0;
int count=0;//計算完數的和
for(i=2;i1000;i++)
{
for(j=1;ji;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語言打印“完數”
完數,即完全數(Perfect number),又稱完美數或完備數,是一些特殊的自然數。其所有的真因子(即除了自身以外的約數)的和(即因子函數),恰好等於本身。
根據該定義 可以得出判斷完數的函數如下:
#include stdio.h
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i =n/2; i ++)
if(n%i == 0) s+= i;//統計所有真因子的和。
if(s == n) return 1;//如果與原值相等,則該數為完數。
return 0;//不是完數。
}
根據該函數,只需要對需要打印的範圍內所有數做遍歷,並逐一調用該函數判斷,如果返回1則打印即可。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/285403.html