习题6-3 使用函数输出指定范围内的完数
1 #include<stdio.h> 2 3 int factorsum(int number); 4 void PrintPN(int m, int n); 5 6 int main(void) 7 { 8 int m, n; 9 10 scanf_s("%d %d", &m, &n); 11 12 if (factorsum(m) == m) 13 { 14 printf("%d is a perfect number\n", m); 15 } 16 17 if (factorsum(n) == n) 18 { 19 printf("%d is a perfect number\n", n); 20 } 21 22 PrintPN(m, n); 23 24 return 0; 25 } 26 27 int factorsum(int number) 28 { 29 /* 30 所有数都包含因数1,所以因数和的初值设为1,然后从2开始判断 31 */ 32 int sum = 1; 33 for (int i = 2; i < number; i++) 34 { 35 if (number % i == 0) 36 { 37 sum = sum + i; 38 } 39 } 40 return sum; 41 } 42 43 void PrintPN(int m, int n) 44 { 45 int flag = 0; 46 for (int i = m; i <= n; i++) 47 { 48 if (factorsum(i) == i) 49 { 50 flag = 1; 51 52 printf("%d = 1", i); 53 for (int j = 2; j < i; j++) 54 { 55 if (i % j == 0) 56 { 57 printf(" + %d", j); 58 } 59 } 60 61 printf("\n"); 62 } 63 } 64 if (flag == 0) 65 { 66 printf("No perfect number\n"); 67 } 68 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!