洛谷 P1851 好朋友

简介: 题目背景 小可可和所有其他同学的手腕上都戴有一个射频识别序列号码牌,这样老师就可以方便的计算出他们的人数。很多同学都有一个“好朋友” 。如果 A 的序列号的约数之和恰好等于B 的序列号,那么 A的好朋友就是 B。

题目背景

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

题目描述

给定一个序列号 S(6≤S≤18000) ,找出序列号不小于 S 的第一对“非常好友” 。

输入输出格式

输入格式:

一行一个整数S,即给定的序列号。

 

输出格式:

一行两个整数A 和 B(用空格隔开) 。A 表示第一个序列号不小于 S 的有“非常好友”的同学,B 是 A 的“非常好友” 。

 

输入输出样例

输入样例#1:
206
输出样例#1:
220 284

 

感想

  距离高考73天时,忙里偷闲做上一题入门级别的模拟,结果两次才AC,原因见题面加黑部分……而且我这次才知道,一个数的约数包括1……长见识了。

解题思路

  按题意模拟即可

  从洛谷讨论里得知这种数对名叫亲和数,挂一个百度到的介绍亲和数比较详细的链接,侵删

源代码

#include<stdio.h>

int s;

int f(int a)//求一个数的“好朋友”
{
    int sum=0;
    for(int i=1;i<a;i++)
    {
        if(a%i==0) sum+=i;
    }
    return sum;
}

int main()
{
    scanf("%d",&s);
    for(int i=s;;i++)
    {
        int j=f(i),k=f(j);
        if(k==i&&i!=j)
        {
            printf("%d %d",i,j);
            return 0;
        }
    }
    return 0;
}

 

目录
相关文章
|
9月前
|
存储 弹性计算 固态存储
阿里云服务器租用价格参考:云服务器各收费项目收费标准与活动价格
阿里云服务器收费项目有实例价格、预留实例券、专有宿主机、块存储价格、存储容量单位包、带宽价格和快照服务价格,收费模式有包年包月和按量付费模式。本文为大家汇总了2025年阿里云服务器各个收费项目的最新收费标准与云服务器的最新活动价格,以供参考和了解。
|
前端开发 JavaScript API
实时搜索建议
实时搜索建议
|
XML Java API
WebService简介
WebService简介
1062 2
|
JavaScript 测试技术 API
如何从 Vue 2 无痛升级到 Vue 3,一文搞定!
如何从 Vue 2 无痛升级到 Vue 3,一文搞定!
11478 8
|
JSON Java 测试技术
Jmeter--控制器--详解(1),技术协会Python部面试
Jmeter--控制器--详解(1),技术协会Python部面试
|
JSON Cloud Native Go
gRPC-GateWay Swagger 实战
gRPC-GateWay Swagger 实战
235 1
|
Shell Docker 容器
仅在 localhost 中部署并使用 RSSHub
由于部分网站严格的反爬机制、再加上大量使用带来的计算压力,RSSHub 鼓励用户自建使用。但如果你也有自建 RSS 阅读器习惯、且部署 RSSHub 也只是为了自用而不打算与他人共享,完全可以本地部署 RSSHub 后不将其暴露至公网、直接在自建 RSS 阅读器上通过特殊字段访问到本地的 RSSHub。
683 0
仅在 localhost 中部署并使用 RSSHub
|
JavaScript
【Vue2.0学习】—Todolist案例(五十九)
【Vue2.0学习】—Todolist案例(五十九)