Datahub
数据改变生活

P1851 好朋友

发表时间:2022-10-28 23:08

P1851 好朋友

题目背景

小可可和所有其他同学的手腕上都戴有一个射频识别序列号码牌,这样老师就可以方便的计算出他们的人数。很多同学都有一个“好朋友” 。如果 AA 的序列号的约数之和恰好等于 BB 的序列号,那么 AA 的好朋友就是 BB。在这里,一个数的约数不包括这个数本身。因为一些同学的号码约数和大于其他任何同学的号码,所以这些同学没有好朋友。一些同学有一个“非常好友” 。当两个同学互为“好朋友”时,他们就是一对“非常好友” 。注意在这道题中,忽略那些自己是自己的“非常好友”的情况。

题目描述

给定一个序列号 ss,找出序列号不小于 ss 的第一对“非常好友” 。

输入格式

只有一行一个整数 ss,即给定的序列号下界。

输出格式

输出一行两个用空格隔开的整数 aabb

aa 表示第一个序列号不小于 ss 的有“非常好友”的同学,bbaa 的“非常好友” 。(注:允许 b<sb<s

输入输出样例

输入 #1复制

206

输出 #1复制

220 284

说明/提示

数据规模与约定

· 对于 100\%100% 的数据,保证 6\le s\le1.8\times10^46≤s≤1.8×104

#include <iostream>

#include <cstdio>

using namespace std;

const int a[9]={220,1184,2620,5020,6232,10744,12285,17296,63020};

const int b[9]={284,1210,2924,5564,6368,10856,14595,18416,76084};

int n;

int main(){

    cin>>n;

    for(int i=0;i<=9;i++){   

        if (a[i]>=n){       

            printf("%d %d\n",a[i],b[i]);   

            return 0;

        }       

        if (b[i]>n){       

            printf("%d %d",b[i],a[i]);

            return 0;

        }       

    }

}


文章分类: 算法学习
分享到:
QQ:258506508                                     联系电话:020-000000    000-000000                                   联系邮箱:xxx@.co.m                                     联系地址:XXX省XXX市XXX县XXX路