P1851 好朋友发表时间:2022-10-28 23:08 P1851 好朋友 题目背景小可可和所有其他同学的手腕上都戴有一个射频识别序列号码牌,这样老师就可以方便的计算出他们的人数。很多同学都有一个“好朋友” 。如果 AA 的序列号的约数之和恰好等于 BB 的序列号,那么 AA 的好朋友就是 BB。在这里,一个数的约数不包括这个数本身。因为一些同学的号码约数和大于其他任何同学的号码,所以这些同学没有好朋友。一些同学有一个“非常好友” 。当两个同学互为“好朋友”时,他们就是一对“非常好友” 。注意在这道题中,忽略那些自己是自己的“非常好友”的情况。 题目描述给定一个序列号 ss,找出序列号不小于 ss 的第一对“非常好友” 。 输入格式只有一行一个整数 ss,即给定的序列号下界。 输出格式输出一行两个用空格隔开的整数 aa 和 bb。 aa 表示第一个序列号不小于 ss 的有“非常好友”的同学,bb 是 aa 的“非常好友” 。(注:允许 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; } } }
文章分类:
算法学习
|