1105: 判断友好数对(函数专题)

题目描述

输入两个正整数m和n,顺序输出m到n之间的所有友好数对。

如果两个整数的所有正因子之和(包括1,不包括自身)等于对方,就称这对数是友好的。例如:1184和1210是友好数对,因为

1184的因子之和为1+2+4+8+16+32+37+74+148+296+592=1210

1210的因子之和为1+2+5+10+11+22+55+110+121+242+605=1184

要求程序定义一个facsum ()函数和一个main()函数,facsum ()函数计算并返回n的所有正因子之和,其余功能在main()函数中实现。

int facsum (int n)

{

//计算n的所有正因子之和sum,本函数返回sum

}

对于C/C++代码的提交,本题要求必须通过定义facsum函数和main函数实现,否则,提交编译错误,需要提交完整的程序代码。

输入

输入两个正整数m和n,1<m<=n<=10000。

输出

输出m和n之间的所有友好数对。

在输出每个友好数对时,要求小数在前、大数在后,并去掉重复的数对。例如,220和284是一对友好数,而284和220也是一对友好数,此时只需输出220和284这对友好数。每个友好数对占一行,两数之间用空格隔开。

如果m和n之间没有友好数对,则输出“No answer”。

样例输入

100 8000

样例输出

220 284
1184 1210
2620 2924
5020 5564
6232 6368
#include<stdio.h>

int facsum (int n)
{
int sum=0;
    for(int i=1;i<n;i++)
        if(n%i==0)
            sum+=i;
        return sum;

}
int main()
{
    int flag=0;
    int n,m,tem;
    scanf("%d%d",&m,&n);
    for(int i=m;i<n;i++)
    {tem=facsum (i);
    if(i==facsum (tem)&&i<tem)
    {printf("%d %d\n",i,tem);
    flag=1;}
    }
    if(flag==0)
        printf("No answer");
    return 0;

}

原文地址:https://www.cnblogs.com/binanry/p/10017337.html

时间: 2024-10-11 15:14:29

1105: 判断友好数对(函数专题)的相关文章

1105 判断友好数对

题目来源:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1105Description输入两个正整数m和n,顺序输出m到n之间的所有友好数对.如果两个整数的所有正因子之和(包括1,不包括自身)等于对方,就称这对数是友好的.例如:1184和1210是友好数对,因为 1184的因子之和为1+2+4+8+16+32+37+74+148+296+592=1210 1210的因子之和为1+2+5+10+11+22+55+110+121+242+605=1

【转】C#判断奇偶数的函数

// 现代流行的"程序员" public static bool IsOdd(int n) { while (true) { switch (n) { case 1: return true; case 0: return false; } n -= 2; } } // 中规中矩的程序员 public static bool IsOdd(int n) { return (n % 2 == 1) ? true : false; } // 有经验的C#程序员 public static b

【数论】【枚举约数】【友好数】CODEVS 2632 非常好友

O(sqrt(n))枚举约数,根据定义暴力判断友好数. 1 #include<cstdio> 2 #include<cmath> 3 using namespace std; 4 int n; int limit; 5 int main() 6 { 7 scanf("%d",&n); 8 for(;;n++) 9 { 10 limit=sqrt(n); int tot=1; 11 if(limit*limit==n) tot+=limit; 12 for

zzuli oj 1105 友好数对

题意描述:输入两个正整数m和n,顺序输出m到n之间的所有友好数对. 如果两个整数的所有正因子之和(包括1,不包括自身)等于对方,就称这对数是友好的.例如:1184和1210是友好数对解题思路:编写函数计算出m-n每个整数的所有正因子之和,然后利用函数算出该因子和的因子和是否等于该数本身,输出原整数与其因子和.代码实现: 1 #include<stdio.h> 2 int facsum(int n) 3 { 4 int i,sum=0; 5 for(i=1;i<n;i++) 6 { 7 i

oracle,sql server count函数 存储过程 判断 行数 注意事项

oralce中使用 count 函数判断 行数 需要注意 一定是count 有值的字段,接下来看一组语句 1 --查询数据 2 select * from kk_create_ka where auto_id='D7313B4716AD4062B82D3CD8513DA7A8'; 1 --count 2 select count(I_E_Flag) from kk_create_ka where auto_id='D7313B4716AD4062B82D3CD8513DA7A8'; 3 sele

蓝桥杯 算法训练 ALGO-117 友好数

算法训练 友好数 时间限制:1.0s   内存限制:256.0MB 问题描述 有两个整数,如果每个整数的约数和(除了它本身以外)等于对方,我们就称这对数是友好的.例如: 9的约数和有:1+3=4 4的约数和有:1+2=3 所以9和4不是友好的. 220的约数和有:1 2 4 5 10 11 20 22 44 55 110=284 284的约数和有:1 2 4 71 142=220 所以220和284是友好的. 编写程序,判断两个数是否是友好数. 输入格式 一行,两个整数,由空格分隔 输出格式 如

友好数对

题意描述:输入两个正整数m和n,顺序输出m到n之间的所有友好数对. 如果两个整数的所有正因子之和(包括1,不包括自身)等于对方,就称这对数是友好的.例如:1184和1210是友好数对解题思路:编写函数计算出m-n每个整数的所有正因子之和,然后利用函数算出该因子和的因子和是否等于该数本身,输出原整数与其因子和.代码实现:#include<stdio.h>int facsum(int n){  int i,sum=0; for(i=1;i<n;i++) {  if(n%i==0)sum+=i

[coci2011]友好数对 容斥

无趣的小x在玩一个很无趣的数字游戏.他要在n个数字中找他喜欢友好数对.他对友好数对的定义是:如果有两个数中包含某一个以上相同的数位(单个数字),这两个数就是友好数对.比如:123和345 就是友好数对,因为都包含数位3,显然123和234也是由号数对.而12和34则不是友好数对,因为它们没有相同的数位. 刚拿到题没怎么读懂,因为我直观的想法是存一下扫一遍就行了,后来一想,得用容斥:又犯蠢了: 其实这道题的容斥比较基本,看代码吧: #include<iostream> #include<c

实现按行读取文件,把内容按照第三种内存模型打包数据传出,把行数通过函数参数传出。

/* 2 编写一个业务函数,实现按行读取文件.把内容按照第三种内存模型打包数据传出,把行数通过函数参数传出. 函数原型有两个,任意选择其一 要求1:请自己任意选择一个接口(函数),并实现功能:70分 要求2:编写测试用例.30分 要求3:自己编写内存释放函数 */ /********************************************************************** * 版权所有 (C)2015, Wu Yingqiang. * * 文件名称:ReadFi