完全數c語言
㈠ 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;
}