日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言求完数

發布時間:2023/12/9 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言求完数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

解題思路:
分析:
1.輸入N
2.掃描每一個1~N的數
3.將當前數字的因子分解出來,累加當前因子求和,將這個數的所有因子保存到數組a中?
4.用因子的和與當前數字對比,若相等即是完數,輸出這個完數和它的因子
5.刷新當前數據,使sum和數組a恢復到初始狀態以便于下一個數字的查找
6.直到掃描完所有數據程序結束
注意事項:數組的空間要足夠大,有些數的因子很多不足夠保存,盡量大點,雖然數組分配20多這個題目就夠了,但是懷著探索精神在遇到更大的數比如10000~10000000等等,這個數組的空間不足以保存他們的因子了
?

參考代碼: #include<stdio.h> int main() {int sum=0,a[300],k=0;//long double N;int N;scanf("%d",&N);for(int i=1;i<=N;i++)//全面掃描1~N之間的數,找出每一個完數 {for(int j=1;j<i;j++)//求出這個數的因子 {if(i%j==0) {a[k]=j;// 將這個數的因子保存到數組a中 k++;sum+=j; //將這個數的每一個因子累加起來 }}if(sum==i)//判斷這個數是否是完數 {printf("%d its factors are ",i);//輸出完數 for(int p=0;p<k;p++)//輸出這個完數的所有因子 {if(p==k-1)//如果當前因子是最后一個因子 則取消空格,若不是最后一個因子則加上空格 printf("%d",a[p]);elseprintf("%d ",a[p]); } printf("\n");//打印完后換行 }sum=0;//刷新當前數據使其恢復初始狀態,繼續掃描下一個數 k=0;//刷新數組使其恢復初始狀態,用來保存下一個數的所有因子 }return 0; }

?

總結

以上是生活随笔為你收集整理的C语言求完数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。