查找1到1000的完数
2012-05-29 11:27
453 查看
名词解释:
完数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
公式2p−1(2p−1) (p是指素数)。
由公式还可知有趣的二进制的格式表示,为p个1及p-1个0组成。
610 = 11022810 = 11100249610 = 1111100002812810 = 11111110000002
完数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
公式2p−1(2p−1) (p是指素数)。
由公式还可知有趣的二进制的格式表示,为p个1及p-1个0组成。
610 = 11022810 = 11100249610 = 1111100002812810 = 11111110000002
#include <stdio.h> #include <string.h> #include <malloc.h> int main (int argc,char *argv[]) { int m, i, s; int buffersize=1000; char *head,*point, *buffer = malloc(buffersize); char tmp[10]; point = buffer; for (m = 1; m <= 1000; m++) { s = 0; head=point; #define __MYPRINTF(format,...)\ memset(tmp,'\0',sizeof(tmp));\ snprintf (tmp,sizeof(tmp),format, ## __VA_ARGS__);\ memcpy(point,tmp,strlen(tmp));\ point += strlen(tmp); __MYPRINTF("%d:",m); for (i = 1; i < m; i++) { if (m % i == 0) { s = s + i; __MYPRINTF ("%d,", i); } } if (s == m) { __MYPRINTF ("\n"); } else { point = head; } *point = '\0'; } printf("%s",buffer); return 0; }
相关文章推荐
- 求1000以内的所有完数
- 编程找出1000之内的所有完数.
- 找出1000以内的所有完数
- 3.找出1000内的完数.
- 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如6=1+2+3.编程 找出1000以内的所有完数。
- 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。
- 1000以内的完数
- 小应用程序求1000以内的所有完数
- 输出1000之内的所有完数,并输出其因子。
- 1000以内的完数和(第十周上机任务)
- 输出2-1000以内的所有完数
- 求1000以内的完数(一个数恰好等于她的因子之和 eg. 6=1+2+3, 6是完数)
- 求1000以内所有完数
- 求1000以内的所有完数
- 查找一个数组中出现次数最多的值(长度为1000)
- 【年少的风】求1000以内的‘完数’
- 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
- 求0-1000之内的“完数”,例如:6的因子是1,2,3,而6=1+2+3!
- 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3。编程找出1000以内的所有完数。
- 小蚂蚁学习C语言(37)——题目——求出1000以内的所有完数以及它的因子