您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页查找1到1000的完数

查找1到1000的完数

来源:爱问旅游网

名词解释:

完数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

公式2p−1(2p−1) (p是指素数)。

由公式还可知有趣的二进制的格式表示,为p个1及p-1个0组成。

6 10 = 110 2
28 10 = 11100 2
496 10 = 111110000 2
8128 10 = 1111111000000 2

#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;
}




因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务