| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 487 人关注过本帖
标题:C语言问题 求解
取消只看楼主 加入收藏
wsliuyunming
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:54
专家分:143
注 册:2010-9-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
C语言问题 求解
//大意/有两个数,每个数的所有公约数(除了本身以外)的和正好等于对方,则称这两个数互为互满数,求30000以内的所有互满数。。

#include "stdio.h"
int f1(int n)
{
    int p=n-1,a=0; //从本身后一数算起
    for(p;p>1;p--)//依次检测
   {
        if(n%p==0)
         a+=p;
   }
      return a;//返回所有公约数之和
}

void main()
{ int i,j,t=0,y=0,a[200],b[200];//定义a[200],b[200]存储互满数
      for(i=30000;i>0;i--)
     for(j=30000;j>0;j--) //双重循环
   {  if((f1(i)==j)&&(f1(j)==i)&&(i!=j))//求互满数
     { a[t]=i;
       b[y]=j;                      //存储在数组里面
       printf("互满数:%d %d",a[t],a[y]);
       t++;
       y++;
     }
   
   }   
   
}
搜索更多相关主题的帖子: C语言 求解 
2010-10-12 16:04
wsliuyunming
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:54
专家分:143
注 册:2010-9-26
收藏
得分:0 
回复 2楼 帝国
可以运行 但是不出结果
2010-10-12 16:28
wsliuyunming
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:54
专家分:143
注 册:2010-9-26
收藏
得分:0 
回复 6楼 liqingyang
我那个怎么就出不来 你的从1到3000而我的不就是反过来从30000到1吗 不都一样吗
2010-10-12 23:21
快速回复:C语言问题 求解
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016545 second(s), 8 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved