| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2996 人关注过本帖
标题:求解怎么能让这个程序快一点
只看楼主 加入收藏
温酒斩化腾
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-3-28
结帖率:72.73%
收藏
已结贴  问题点数:14 回复次数:4 
求解怎么能让这个程序快一点
2500年前数学大师毕达哥拉斯就发现,220与284两数之间存在着奇妙的联系:
220的真因数之和为:1+2+4+5+10+11+20+22+44+55+110=284
284的真因数之和为:1+2+4+71+142=220
毕达哥拉斯把这样的数对称为相亲数。相亲数,也称为亲密数,如果整数A的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。
从键盘任意输入一个整数n,编程计算并输出n以内的全部亲密数。
程序代码:
#include<stdio.h>
int fide(int n)
{
    int i,j[500],sum=0;
    for(i=1;i<=(n/2);i++)
    {
        if(n%i==0)
        {
            sum=sum+i;
            
        }
        
    }
    return sum;
}
int main()
{
    int a,c,d,x,y;
    printf("input m\n");
    scanf("%d",&a);
    for(x=1;x<a;x++)
    {
        c=fide(x);
        for(y=a;y>1&&y!=x;y--)
        {
            d=fide(y);
            if(c==y&&x==d)
                printf("(%d,%d)\n",y,x);
        }
        
    }
}
搜索更多相关主题的帖子: 之和 整数 int sum for 
2017-07-16 13:34
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:7 
"这个程序快一点"
这是一个很庞大的问题,涉及到CPU的底层运行原理,编译原理以及特定编译器的特性........

我想,你真正想问的是,如果改进这个算法,提高性能?
2017-07-16 13:44
温酒斩化腾
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-3-28
收藏
得分:0 
回复 2楼 八画小子
是的
2017-07-16 17:15
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:7 
回复 3楼 温酒斩化腾
你或许需要一个素数表~筛法求素数应该是很理想的~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-07-16 18:27
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 4楼 九转星河
感觉用数组索引来做链表可以用来保存各数的因数~不过这样空间消耗感觉比较大~当然如果不考虑空间浪费问题还可以用二维数组~

PS:用筛法加链表记录因数算法命中率应该可以达到百分百吧~

可以由素数来组成一颗树~栈式森林结构?~算法复杂度还是o(n)?~

PPS:原来不是简单的因式分解~知道因式分解反推因子和的算法复杂度是o(2^k)----其中k为因子个数~当然玩意还是比o(n^2)的效率高多了~毕竟建表后可以跳过素数的检测~

[此贴子已经被作者于2017-7-16 20:12编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-07-16 19:09
快速回复:求解怎么能让这个程序快一点
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025733 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved