前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2632 非常好友

2632 非常好友

作者头像
attack
发布2018-04-13 12:17:41
6660
发布2018-04-13 12:17:41
举报

2632 非常好友

时间限制: 1 s

空间限制: 128000 KB

题目等级 : 黄金 Gold

题目描述 Description

Bessie和其他的所有奶牛的耳朵上都戴有一个射频识别(RFID)序列号码牌。因此农夫John可以机械化地计算他们的数量。很多奶牛都有一个“牛友”。如果奶牛A的序列号的约数之和刚好等于奶牛B的序列号,那么A的牛友就是B。在这里,一个数的“约数”不包括这个数本身。

因为一些奶牛的号码约数和大于其他任何奶牛的号码,所以这些奶牛没有牛友。而一些奶牛有一个“非常好友”,当两个奶牛互为“牛友”时,他们就是一对“非常好友”。注意在这道题中,忽略那些自己是自己的“非常好友”的情况。

给定一个序列号S (6≤S≤18,000),找到序列号不小于S的第一个有“非常好友”的奶牛。

比如说,考虑序列号220,它的约数是1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 和110,和是284。类似的,284的约数是1, 2, 4, 71, 和142,他们的和是220。因此220和284是一对非常好友。

输入描述 Input Description

第1行: 一个单独的整数S,即给定的序列号。

输出描述 Output Description

第1行:2个整数A和B,用一个空格隔开。A表示第一个序列号不小于S的有非常好友的奶牛的序列号,B是他的“非常好友”的序列号。

样例输入 Sample Input

206

样例输出 Sample Output

220 284

数据范围及提示 Data Size & Hint

NO

分类标签 Tags 点此展开

暴力枚举即可

代码语言:javascript
复制
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 using namespace std;
 6 int f(int n)
 7 {
 8     int ans=0;
 9     for(int i=1;i<=n-1;i++)
10     {
11         if(n%i==0)
12         {
13             ans=ans+i;
14         }
15     }
16     return ans;
17 }
18 int main()
19 {
20     int n;
21     scanf("%d",&n);
22     while(1)
23     {
24         int p=n;
25         n++;
26         int sum=f(p);
27         int pd=f(sum);
28         if(pd==p)
29         {
30             printf("%d %d",p,sum);
31             return 0;
32         }
33     }
34     return 0;
35 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-04-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2632 非常好友
    • 分类标签 Tags 点此展开
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档