寻找n以内的亲密数对 python编程

2023-11-02

问题描述:

寻找n以内的亲密数对。
代码格式如下:
def fac(n):
    ...
    return  xxx

n = int(input())   # 此处输入由系统自动完成不需要自己输入,只要写这样一条语句即可
...(4分)
题目内容:
对于两个不同的整数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将A和B称为亲密数。自定义函数fac(x)计算x包括1但不包括本身的所有因子和并返回。从键盘输入整数n,调用fac()函数寻找n以内的亲密数并输出。注意每个亲密数对只输出一次,小的在前大的在后,例如220-284。
输入格式:
按提示用input()函数输入
输出格式:
按样例形式,可使用形如“print("{}-{}".format(参数1, 参数2))”输出语句进行亲密数对的输出
输入样例:
500
输出样例:
220-284

时间限制:1500ms内存限制:100000kb

使用python实现:

import math
def fac(n):
    i = 2
    divisor_num = 1
    while i <= n // 2:
        if n % i == 0:
            divisor_num += i
        i += 1
    #print('{}的因子之和为:{}'.format(n, divisor_num))
    return divisor_num
# 判断是否为素数
# a的所有正因子和等于b,b的所有正因子和等于a,因子包括1但不包括本身,且a不等于b,则称a,b为亲密数对
# 按照亲密数对的定义,任意素数的全部因子之和都是1,很明显不应该构成亲密数对
def isPrime(n):
    if n == 1:
        return False
    square_root = int(math.sqrt(n))
    for i in range(2, square_root + 1):
        if n % i == 0:
            return False
    return True

def getNumberPairs(n):
    try:
       #获取包括n以内的合数-->素数不构成亲密数对
       temp = [i for i in range(4, n + 1) if isPrime(i) != 1]
       for i in temp:
            j = fac(i)
            #如果因子之和等于本身,则不会构成亲密数对
            if j not in temp or i == j:
                continue
            if fac(j) == i:
                print('{}-{}'.format(i, j))
                #将其从temp列表删除,为了保证每个亲密数对只输出一次
                temp.remove(i)
    except Exception as e:
        raise e
n = int(input())
getNumberPairs(n)

测试:

# n = int(input())
# getNumberPairs(n)
if __name__ =='__main__':
    for i in range(3):
        n = int(input())
        getNumberPairs(n)
        print('*'*20)

结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

寻找n以内的亲密数对 python编程 的相关文章

  • 资产管理系统 CMDB 详解

    两年前笔者在一个中小型互联网公司做运维 当时我们经理在机房 花了半天找一台服务器 但是服务器搞错了 悲剧了 当时我们的做法是用了一个 Excel 很多时候更新不及时 重启一台机器 拔一根网线都提心吊胆 那个时候如果有一个资产管理系统的话就可
  • Django之数据库并发处理

    1 数据库并发处理问题 在多个用户同时发起对同一个数据提交修改操作时 先查询 再修改 会出现资源竞争的问题 导致最终修改的数据结果出现异常 比如限量商品在热销时 当多个用户同时请求购买商品时 最终修改的数据就会出现异常 下面我们来写点代码还
  • 强化学习的A3C算法应用(训练Atari游戏)

    A3C算法的全称是Asynchronous Advantage Actor Critic 异步优势执行者 评论者算法 这个算法和优势执行者 评论者算法的区别在于 在执行过程中不是每一步都更新参数 而是在回合结束后用整个轨迹进行更新 因此可以
  • scikit-learn工具包中分类模型predict_proba、predict、decision_function用法详解

    在使用sklearn训练完分类模型后 下一步就是要验证一下模型的预测结果 对于分类模型 sklearn中通常提供了predict proba predict decision function三种方法来展示模型对于输入样本的评判结果 说明一
  • python爬虫进阶教程:抖音APP无水印视频批量下载

    一 前言 本文为两类人准备 技术控和工具控 如果你是工具控 想简单方便地下载无水印的视频 那么可以使用第三方去水印平台 抖音短视频解析下载平台 如果你是技术控 想要使用自己写的代码下载视频 那么可以使用本文的方法 用python写爬虫下载视
  • Python中“from docx import Document“报错问题以及怎么提取.docx文档中所有的红色字体

    1 Python中 from docx import Document 报错问题 Pycharm中 当我们输入 from docx import Document 报错问题 在Pycharm中 我们若是想要操作word文件 我们就必须要使用
  • 编程15年40岁程序员的我终于在压力下被迫转行了

    本人今年40岁多了 中山大学计算机小硕 已经从事it工作15年多 最后一次工作是2017年 创业 互联网教育方向 2020年失败关闭公司 创业失败后 在家沉淀了几个月 然后决定再次找工作 前几年频繁接到猎头电话的我 海投了不少公司 结果都渺
  • liu.四则运算库,模拟第三方库的编写,测试

    1 四则运算库 def add a b return float a b def subtracr a b return float a b def multipy a b return float a b def divide a b r
  • python小记(一)矩阵和向量的拼接

    TOCpython小计 一 python矩阵和向量的拼接 比如用python生成一个长度为17000的向量和一个17000 8的矩阵 那么向量的shape为 17000 矩阵的shape为 17000 8 查了CSDN上很多都是矩阵拼接矩阵
  • 强化学习笔记(4)-深度Q学习

    以下为学习 强化学习 原理与python实现 这本书的笔记 在之前学习到的强度学习方法中 每次更新价值函数只更新某个状态动作对的价值估计 但是有些情况下状态动作对的数量非常大 不可能对所有的状态动作对逐一更新 函数近似方法用参数化的模型来近
  • AdaBoost算法实例详解

    提升树Boosting Tree算法实例详解 程大海的博客 CSDN博客 从提升树Boosting Tree过度到梯度提升Gradient Boosting 程大海的博客 CSDN博客 GBDT梯度提升之回归算法个人理解 程大海的博客 CS
  • 丢掉Excel,手把手教你用Python做可视化,还能调节动画丝滑度

    数据可视化动画还在用Excel做 现在一个简单的Python包就能分分钟搞定 而且生成的动画也足够丝滑 效果是酱紫的 这是一位专攻Python语言的程序员开发的安装包 名叫Pynimate 目前可以直接通过PyPI安装使用 使用指南 想要使
  • 数据分析入门宝藏!《Python数据分析-从入门到实践》

    在大数据 人工智能时代 数据无处不在 无论处于哪种行业 能够掌握一定的数据分析技能必然是职场的加分项 本笔记提供了丰富的学习内容 包含230个快速示例 17个案例 4个项目 力求为读者打造一本 学习入门 应用 实践一体化 的的Python数
  • python 3.6安装cPickle

    1 在python2 X中 需要安装cPickle 2 在python3 X中 这个包已被别的包替换 使用以下语句即可 import pickle as cPickle
  • 6个 Python 办公黑科技,工作效率提升100倍!(附代码)

    下班晚 加班久感觉已经成为现代打工人的通病 每天将大部分时间浪费在一些机械 重复的工作上 如何提升你自己的工作效率才是关键 今天给大家分享6个 Python 办公小技巧 让你的工作效率倍增 欢迎大家学习收藏 喜欢点赞支持 废话不说 让我们开
  • Python兼职:800-1500元/天,多做多得,时间自由!

    以下三种情况 哪个让你最绝望 好不容易找到一个资源齐全的网站 不是要收费就是要翻墙 每次想看的音乐会 想抢的假期车票 永远抢不到 工资4500 生活费1000 花呗欠了10000 说实话 反正我真的选不出 每一个都让我崩溃 但是我将这个测试
  • 49个Python的常见操作/技巧/例子

    17个Python的常见操作 技巧 很多读者都知道 Python 是一种高级编程语言 其设计的核心理念是代码的易读性 以及允许编程者通过若干行代码轻松表达想法创意 实际上 很多人选择学习 Python 的首要原因是其编程的优美性 用它编码和
  • Python 配置文件(.ini、 .conf、 .cfg)的读写

    python读取配置文件两个常用模块 ConfigParser和configobj模块 1 对比 ConfigParser的一些问题 不能区分大小写 重新写入的配置文件不能保留原有配置文件的注释 重新写入的配置文件不能保持原有的顺序 不支持
  • Python入门习题(91)——OpenJudge百练习题:汉诺塔问题

    OpenJudge百练第4147号习题 汉诺塔问题 题目描述 解题思路 参考答案 测试用例 小结 题目描述 来源 OpenJudge网站 百练习题集 第4147号习题 要求 总时间限制 1000ms 内存限制 65536kB 描述 一 汉诺
  • Python中的any()和all()

    any any 函数采用iterable作为参数 any iterable 迭代器可以是列表 元组或字典 如果iterable中的所有元素为true 则any 函数将返回 True 但是 如果传递给该函数的Iterable为空 则返回 Fa

随机推荐

  • (一维数组)输入N个数,然后逆序输出

    一维数组 1 输入N个数 例题6个数 然后逆序输出 define N 6 include stdio h void main int i a N t for i 0 i
  • 网络安全-js安全知识点与XSS常用payloads

    目录 简介 用法 JS必备知识 输出与注释 输出 注释 语法 函数 字符串方法 事件 表单 Cookie 代码执行 伪协议 XSS常用payload 普通 双写绕过 编码绕过 html标签绕过正则 参考 写给和我一样学习安全的小白 简介 J
  • eMMC分区管理

    目录 0 概述 FLASH分区类型 分区大小 分区编址 1 Boot Area Partitions 1 1 容量大小 1 2 从 Boot Area 启动 1 2 1 Original Boot Operation 1 2 2 Alter
  • 递归与回溯的理解

    递归 程序调用自身的编程技巧称为递归 recursion 递归做为一种算法在程序设计语言中广泛应用 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法 它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模 较小的问题来求解
  • 忘了高高在上的Chatgpt吧,更香的Claude和Bard来了

    最近LLM这一领域近年来进步神速 新的产品层出不穷 给我们的生活和工作带来了巨大便利 也引发了广泛关注 首当其冲的 就数OpenAI研发的ChatGPT ChatGPT是一款基于GPT模型打造的对话AI系统 被业内公认为目前进展最快 实力最
  • 大多数女生为什么不适合当程序员?

    最重要的一点 逻辑思维能力 女程序员最大的问题不是压力大而是思维方式切换的挑战 从抽象到具象 平常需要将问题抽象出来 运用抽象思维解决工作上的困难 生活中间又要很具象 很感性地和人交往 这是非常难以达到的一件事 加上工作压力一大 就容易崩溃
  • skywalking 实现收集基于python的Django项目链路追踪案例

    一 python3环境设置 1 1 安装python3 apt get update apt install python3 pip y pip install apache skywalking root skywalking agent
  • 人脸相关公开数据集

    1 皮肤分割和面部检测数据集 FSD 1 数据集名称 Face and Skin Detection FSD Database 2D图像 2 数据集简介 The Face and Skin Detection FSD Database is
  • nodejs使用kafka

    什么是卡夫卡 kafka 是一种分布式的 基于发布 订阅的消息系统 消息以消息队列的形式进行发送 如何使用kafka 安装kafka npm i kafka node 配置config 配置kafka的地址和topic 放在config文件
  • 【VQ-VAE论文精读+代码实战】Neural Discrete Representation Learning

    VQ VAE论文精读 代码实战 Neural Discrete Representation Learning 0 前言 Abstract 1 Introduction 提出现有方法的问题并说明有哪些贡献 2 Related Work 提出
  • vue中click无效问题

    当父元素为relative 子元素为absolute时可能会出现click点击无效 无法触发onClick事件的情况 目前已知两种解决方法 1 最外层div的z index层级设置比里面绝对定位的大 2 用 click prevent也是可
  • 【机器学习】特征工程:时间特征构造以及时间序列特征构造(含源代码理解)

    目录 特征工程 时间特征构造以及时间序列特征构造 一 前言 二 特征构造介绍 三 时间特征构造 3 1 连续值时间特征 3 2 离散值时间特征 3 2 1 时间特征拆解 3 2 2 时间特征判断 3 2 3 结合时间维度的聚合特征 四 时间
  • shell浅谈之三for、while、until循环

    一 简介 Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式 有三种常用的循环语句 for while和until while循环和for循环属于 当型循环 而until属于 直到型循环 循环控制符 break和conti
  • 【Redis速通】基础知识2 - 常用数据结构

    Redis 通用指令 下面是一些 Redis 的通用命令 你可以根据下表进行简单的复习 键操作命令 SET 设置指定键的值 GET 获取指定键的值 DEL 删除指定键 EXISTS 检查指定键是否存在 KEYS 获取匹配指定模式的键列表 字
  • MyBatis代码生成器-Example讲解

    什么是example类 mybatis generator会为每个字段产生Criterion 为底层的mapper xml创建动态sql 如果表的字段比较多 产生的example类会十分庞大 理论上通过example类可以构造你想到的任何筛
  • Linux JAVA环境的搭建tomcat的部署(含多实例)

    tomcat tomcat是Apache软件基金会项目中的一个核心项目由 Apache Sun 和其他一些公司及个人共同开发而成 tomcat 是 Java 语言开发的 Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器 to
  • 快排和归并排序算法的模板及运用

    快排和归并排序算法的模板及运用 一 快速排序 二 快速选择 三 归并排序 四 逆序对的数量 一 快速排序 核心思想 把一个序列分为两部分 左半部分所有数均小于等于或大于等于右半部分所有数 递归处理左右两部分 具体步骤 其中q为一个数组 l为
  • windows下SSH服务的开启

    本人服务安装环境是win7 启动程序是freeSSHd freeSSHd下载链接如下 链接 https pan baidu com s 18ZNS5PvACo30fYjRhI ZPA 提取码 39e7 运行 exe文件 默认安装即可 安装路
  • New Year and Social Network【Hello 2020 F】【拓扑+LCA+贪心】

    题目链接 看到比赛的时候zzq大聚聚用了LCT做的 在线 首先 我们可以发现 两棵大小相同 构造形状不同的树 一定是可以用另一棵树的边来维持这棵树上的每一个点的相互连通性的 我的做法 就是基于这样展开的 我们有T1 T2两棵树 现在我们要去
  • 寻找n以内的亲密数对 python编程

    问题描述 寻找n以内的亲密数对 代码格式如下 def fac n return xxx n int input 此处输入由系统自动完成不需要自己输入 只要写这样一条语句即可 4分 题目内容 对于两个不同的整数A和B 如果整数A的全部因子 包