zoukankan      html  css  js  c++  java
  • 2632 非常好友

    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

    暴力枚举即可

     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 }
  • 相关阅读:
    CF280C Game on Tree 概率与期望
    bzoj 3420: Poi2013 Triumphal arch 树形dp+二分
    bzoj 2111: [ZJOI2010]Perm 排列计数 Lucas
    bzoj 3709: [PA2014]Bohater 贪心
    bzoj 1396/2865: 识别子串 后缀自动机+线段树
    【教程】如何搭建一个自己的网站
    C#单例设计模式
    C#双缓冲代码
    Hibernate的查询功能
    hibernate事务规范写法
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/6744722.html
Copyright © 2011-2022 走看看