PTA 7-6 找完数:寻找任意范围内的完数及因子分解式

这篇具有很好参考价值的文章主要介绍了PTA 7-6 找完数:寻找任意范围内的完数及因子分解式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PTA 7-6 找完数

所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。

输入格式:
输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。

输出格式:
逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + … + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。

输入样例:

2 30

输出样例:

6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14

题解:
在定义的整数变量m,n之间利用循环语句先找出满足条件的完数(sum),再对找出的完数进行计算讨论,找出该完数除本身外的所有因子数。按输出格式输出。

思路:
1,定义整形变量m,n。整形变量sum用于储存在[m,n]区间内的完数。整形变量num用于记录获得的完数数目,在num=0时,输出None
2,利用循环语句将[m,n]区间内的所有数字进行讨论,获得完数,按一定格式输出(“%d = 1”,i)。
3,再用循环语句找出满足条件的因子(除了1和本身),按格式输出(printf(" + %d",j)。累加num。
4,结束所有循环,对num=0的情况讨论。

注意:
1,每次循环都要将sum初始化(sum=1),防止答案出错。
2,留意对没有完数的情况特殊讨论(num0=0),输出None。
3,对1的情况特殊讨论,1不是完数,如果1在[m,n]里,则跳出这次循环。

代码:文章来源地址https://www.toymoban.com/news/detail-741221.html

#include<stdio.h>int main(){
	int m,n,sum,num=0;       //定义所需要的所有变量
	scanf("%d %d",&m,&n);
	for(int i=m;i<=n;i++){      //利用循环对[m,n]的每个数字进行讨论
		if(i==1)           //对1的特殊情况进行讨论
            continue;       //跳出这次循环
		sum=1;           //将每次的sum值初始化
		for(int j=2;j<i;j++)         //对数字是否为完数讨论
			if(i%j==0) 
                sum+=j;
		if(sum==i)         //在sum=i时,sum的值即为所需的完数
		{
			printf("%d = 1",i);      //按格式输出完数
			for(int j=2;j<i;j++)         //利用循环找出除1和本身的所有因子
				if(i%j==0)        //j为sum的因子数
					printf(" + %d",j);       //按格式输出所有因子
			printf("\n");
			num++;       //记录所有在[m,n]中的完数
		}
	}
	if(num==0)        //讨论没有完数的情况
        printf("None");
	return 0;}

到了这里,关于PTA 7-6 找完数:寻找任意范围内的完数及因子分解式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ElasticSearch - 根据经纬度,简单搜索指定距离范围内的数据

    ES的地图检索方式 ES支持的地图检索方式有以下几种; geo_distance geo_bounding_box geo_polygon 1、 geo_distance :直线距离检索,如给定点A,要求返回地图上距离点A三千米的商家(点外卖场景) 2、查找索引内距离北京站(116.433733,39.908404)3000米内的点 geo_distance涉及的参数如下 location:确

    2024年02月14日
    浏览(23)
  • LeetCode 2559. 统计范围内的元音字符串数:前缀和

    力扣题目链接:https://leetcode.cn/problems/count-vowel-strings-in-ranges/ 给你一个下标从 0 开始的字符串数组 words 以及一个二维整数数组 queries 。 每个查询 queries[i] = [l i , r i ] 会要求我们统计在 words 中下标在 l i 到 r i 范围内( 包含 这两个值)并且以元音开头和结尾的字符串的数目。

    2024年02月07日
    浏览(25)
  • Python自动计算Excel数据指定范围内的区间最大值

      本文介绍基于 Python 语言,基于 Excel 表格文件内某一列的数据,计算这一列数据在每一个 指定数量的行 的范围内(例如每一个 4 行的范围内)的 区间最大值 的方法。   已知我们现有一个 .csv 格式的 Excel 表格文件,其中有一列数据,我们希望对其加以 区间最大值 的

    2024年02月15日
    浏览(20)
  • 2023-06-02 LeetCode每日一题(统计范围内的元音字符串数)

    点击跳转到题目位置 给你一个下标从 0 开始的字符串数组 words 以及一个二维整数数组 queries 。 每个查询 queries[i] = [li, ri] 会要求我们统计在 words 中下标在 li 到 ri 范围内( 包含 这两个值)并且以元音开头和结尾的字符串的数目。 返回一个整数数组,其中数组的第 i 个元素

    2024年02月07日
    浏览(28)
  • [SQL开发笔记]BETWEEN操作符:选取介于两个值之间的数据范围内的值

    一、功能描述: BETWEEN操作符:选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。 二、 BETWEEN 操作符语法详解: BETWEEN操作符语法: 参数说明: 1.column1, column2, ...:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。

    2024年02月08日
    浏览(24)
  • C++将字符串中包含指定字符串范围内的字符串全部替换

    将指定字符串所在的范围之内的字符串全部替换为指定的字符串。如: 源字符串: 转换后的字符串: 或者转换为: 本文就是记录一种将上述字符串替换成功的方法。其中转换之后的第一个字符串,实际上是将原有字符串中 “$START$” 和 “$END$” 替换为 “” (空字符串);

    2024年02月07日
    浏览(31)
  • selenium 要点击的元素被其他元素遮挡 or 无法找到非可视范围内的元素

    selenium 无法找到非可视范围内的元素 org.openqa.selenium.StaleElementReferenceException: The element reference of is stale; either the element is no longer attached to the DOM, it is not in the current frame context, or the document has been refreshed selenium 要点击的元素被其他元素遮挡 org.openqa.selenium.ElementClickInterceptedExce

    2024年02月10日
    浏览(15)
  • 利用scrapy框架对etherscan.io中给定Block范围内的交易信息的爬取

    一、 背景介绍 Etherscan 是 2015 年推出的一个以太坊区块探索和分析的分布式智能合同平台, 由于区块链中的交易信息等数据都是公开透明的 , 而 Etherscan 作为探索以太坊的窗口, 用户可以使用其查看自己的交易详情以及以太坊中的任何信息。 我们都有过这样的经历, 打开 taoba

    2024年02月12日
    浏览(20)
  • python:使用geopandas和rasterio将矢量范围内的栅格值赋为0并重新输出

    需求:有一个点shp文件和一个栅格,想要构建shp中每个点的缓冲区,并且缓冲区范围内的栅格值重新赋为0并输出新的tif文件 解决方法:使用python中的geopandas和rasterio中的掩膜操作实现 代码如下: 如果已有的是面文件,想要将面文件范围内的栅格值重新赋值,可以直接读取

    2024年02月13日
    浏览(20)
  • 咸虾米之一些快捷方式的操作,一行方块的左右滑动,方块在一区域内的任意移动

    由于本着只学习微信小程序的目的,上面的几篇博文都是跟着黑马程序的课程走的!后面的就讲解uni-app的实验呢!一个人的精力是有限的,于是换了们课程继续深造微信小程序!!!     以下是在 .wxml中的一些  以下是view三层嵌套的快捷操作方式! .box.inner.row 最外层是 c

    2024年02月11日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包