Ⅰ c語言求完數
/*完數,即完美數,一個數如果恰好等於除它本身外的因子之和,這個數就稱為完數。例如6=1+2+3.(6的因子是1,2,3)*/
#include<stdio.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;j<i;j++)
{
if((i%j)==0){a[k]=j;k++;}
}
for(h=0;h<k;h++)
{
s+=a[h];
}
if(i==s){printf("%d ",i);sum++;}
}
printf("完數的個數:%d\n",sum);
}
時間太緊,沒注意程序的簡潔性和效率,這個需要你自己改了!
Ⅱ c語言 完全數
#include<stdio.h>
void main()
{
int i,n;
int s=0;
printf("input a number N(1<N<=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語言列印「完數」
// 本程序演示一個數如果恰好等於它的因子之和,這個數就稱為「完數」。例如6=1+2+3.編程找出1000以內的所有完數
#include"stdio.h"
main()
{
int i,j,s,sum;
printf("完數:\n") ;
sum=0;
for(i=2;i<=1000;i++)
{ s=0; ;//此處s=0一定要加,因為前幾次循環的時候s的值已經改變 。清零
for(j=1;j<i;j++)
{
if(i%j==0)//這一塊是如果能夠整除,那麼就是該數的因子,我們累加起來
{s+=j;
}
}
if(s==i) //因子的和與原數比較,如果正確就輸出
{printf("%d\n",i);
sum++;
}
}
printf("完數的個數:%d\n",sum);
}
Ⅳ 用C語言編寫「判斷一個數是否為完數」!
1、首先打開C語言的編輯軟體,這里是使用VS2017版,在c語言的文件中寫入頭文件和主函數備用:
Ⅳ 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語言:完全數程序
如果想顯示完全數的因子的話,用數組存儲比較合適。你的程序有個邏輯錯誤。
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語言編程
完美數(Perfect number),又稱完全數或完備數,是一些特殊的自然數。該數所有的真因子(即除了自身以外的約數)的和(即因子函數),恰好等於本身。如果一個數恰好等於它的因子之和,則稱該數為「完美數」。
所以根據定義,可以得到判斷完美數的程序:
intis_perfect_number(intn)//對n進行判斷,如果是完美數,返回1,否則返回0.
{
intj,sum=0;
sum=0;
for(j=1;j<n;j++)//對每個小於n的正數進行遍歷,
if(n%j==0)//如果是因子,
sum=sum+j;//累加到sum上。
returnsum==n;//返回結果。
}