亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求大佬幫忙使用C語言函數寫一個關于完數的代碼!具體描述如下!

求大佬幫忙使用C語言函數寫一個關于完數的代碼!具體描述如下!

天涯盡頭無女友 2021-07-02 11:07:47
問題描述 一個數如果恰好等于它的因子之和,這個數就稱為“完數”。例如,6的因子為1、2、3,而6=1+2+3,因此6是“完數”。預置代碼 #include<stdio.h>void Solve(int);/*fact函數如果整數n是完數,則返回1;否則返回0。把n的每個因子放在一維數組a中。*len是數組a的長度。*/int fact(int n, int a[], int *len);int main(){int n;while(scanf("%d", &n)!=EOF){Solve(n);}return 0;}輸入 測試數據有多個,每個測試數據是一個單獨的整數n。輸出 對每個測試數據n,(1)如果n是完數,則輸出它,并且輸出它的因子。輸出樣式如下Yes, its factors are 1 2 3 每個因子后面都有一個空格。(2)如果不是完數,則輸出:No每個測試數據的輸出占單獨的一行。輸入樣列 6100輸出樣例 Yes, its factors are 1 2 3 No
查看完整描述

1 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

void Solve(int num)
{
int sum = 0;
int i = 0;

if (num == 0)
{
printf("No\n");
}
else if (num == 1)
{
printf("Yes, its factors are %d\n", num);
}
else
{
for (i = 1; i < num; i++)
{
if (num % i == 0)
{
sum += i;
}
}

if (sum == num)
{
printf("Yes, its factors are ");

for (i = 1; i < num; i++)
{
if (num % i == 0)
{
printf("%d ", i);
}
}
printf("\n");
}
else
{
printf("No\n");
}
}
}

int main() //鏈表建立測試
{
int n;
while(scanf("%d", &n) != EOF)
{
Solve(n);
fflush(stdin); //防止輸入字母造成死循環
}
return 0;
}



查看完整回答
反對 回復 2021-07-04
  • 1 回答
  • 0 關注
  • 342 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號