1. 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);
}
2. C語言列印n內完數
#include<stdio.h>
#include<math.h>
void main()
{
int n,i,j=1,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
while(i>j)
{
if(i%j==0)
sum=sum+j;
j++;
}
if(sum==i)
{
printf("%d its factors are 1",i);
for(j=2;j<i;j++)
{if(i%j==0)
printf(",%d",j);}
printf("\n");
}
sum=0;
j=1;
}
}
程序可以運行,你的if(sum=i)錯誤應該為==
每行一個完數。所以換行輸出應該在if(sum=i){}大括弧裡面。
注意sum,j的還原。
3. 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;
}
4. 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;
}
5. c語言,要求求出1~1000內的「完全數」,並以列如6=1+2+3的格式輸出,問程序哪裡出問題。
樓主的代碼邏輯沒有問題,有幾個小問題。
1、1不是完全數,所以printf("1=1");沒有必要打,並且列印完之後沒有 換行
2、m沒有初始化,需要在for(i=1;i<j;i++)之前初始化m=0
3、最後的printf(" ");需要放在if(m==j)判斷裡面,不然每一次for(j=2;j<=1000;j++)循環都會列印一個換行符,前面輸出的結果就沒了。
修改後的代碼如下,樓主寫代碼的時候還是加上換行和縮進吧,不然看著太別扭了。
longinti,j,m;
//printf("1=1 ");//1不是完全數,沒有必要打,還少了
for(j=2;j<=1000;j++)
{
m=0;
for(i=1;i<j;i++)
if(j%i==0)
m+=i;
if(m==j)
{
printf("%d=1",j);
for(i=2;i<j;i++)
if(j%i==0)
printf("+%d",i);
printf(" ");
}
//printf(" ");//換行放在if(m==j)裡面,找到完全數才需要換行,不然結果全被沖掉了
}
6. C語言完全數問題
#include
<stdio.h>
int
main()
{
int
n,N,i,j,sum;
printf("輸入整數n,判斷n是否是完全數:\n");
scanf("%d",&n);
sum
=
0;
for
(i
=
2;i
<
n;i++)
{
if
(n%i
==
0)
sum
+=
i;
}
if
(n==sum)
printf("%d是完全數\n",n);
else
printf("%d不是完全數\n",n);
printf("輸入整數N,輸出1~N之間的所有完全數:\n");
scanf("%d",&N);
printf("1~N之間的所有完全數為:\n");
for
(i
=
6;i
<=
N;i++)
{
for
(j
=
2,sum
=
0;j
<
i;j++)
{
if
(i%j==0)
sum+=j;
}
if
(sum
==
i)
printf("%d\n",i);
}
return
0;
}
7. 如何用C語言列印1000以內的完數
// 本程序演示一個數如果恰好等於它的因子之和,這個數就稱為「完數」。例如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);
}
8. 運用c語言輸出100以內所有的完全數
1、首先打開vs 2017軟體,打開一個准備好的工程,新建一個C語言文件,先寫入頭文件和main函數,裡面定義需要的用到的4個變數。
9. 用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);
}
10. C語言如何判斷這個數是完數
1、打開c語言編輯器,新建一個C語言空白文件: