C中的一道和大数有关的题目,不会做,各位大佬提个意见呗

我要出家当道士
运维领域新星创作者
2017-11-19 02:53:49
输出10000000000以内的的完数,完数就是一个数恰好等于它的因子,例如6=1+2+3,将结果输出质out.txt。
我的问题是,数据范围太大了,不知道如何计算
...全文
154 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
C中现有的数据类型满足不了这个大数的,想着用数组做,不知道如何实现,数据太大了。
destory27 2017-11-19
  • 打赏
  • 举报
回复
直接求数太多了,,,可以先找出每个数的因子,,在因子中找满足条件的 感觉也比较复杂 意见而已
FoolCarpe 2017-11-19
  • 打赏
  • 举报
回复
运行的时间非常久,算法比较普通 仅供参考
#include <stdio.h>
  
#define N 10000000000

int main(int argc, char *argv[])
{
        unsigned long long j,k,sum = 0;
        for(k=2;k<=N;k++)
        {
                sum=0;
                for(j=1;j<=k/2;j++)
                        if(k%j==0)
                                sum=sum+j;
                if(sum==k)
                        printf("%lld\n",k);
        }

        return 0;
}

69,374

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧