信息学奥赛初赛天天练-19-挑战程序阅读-探索因数、所有因数平和、质数的奥秘

PDF文档公众号回复关键字:20240604
在这里插入图片描述

1 2023 CSP-J 阅读程序3

阅读程序(程序输入不超过数组成字符串定义的范围:判断题正确填√,错误填×;除特殊说明外,判断题1.5分,选择题3分,共计40分)

源程序

#include <iostream>
#include <cmath>
using namespace std;int solve1(int n){return n*n;
}int solve2(int n){int sum=0;for(int i=1;i<=sqrt(n);i++){if(n%i==0){if(n/i==i){sum+=i*i;}else{sum+=i*i+(n/i)*(n/i);}}}return sum;
}int main(){int n;cin>>n;cout<<solve2(solve1(n))<<" "<<solve1((solve2(n)))<<endl;return 0;
}

假设输入的n是绝对值不超过1000的整数,完成下面的判断题和单选题。

判断题

27(2分)如果输入的n为正整数,solve2函数的作用是计算n所有的因子的平方和( )

28 (2分) 第13~14行的作用是避免n的平方根因子i(或n/i)进入第16行而被计算两次( )

29 (2分)如果输入的n为质数,solve2(n)的返回值为n^2+1( )

单选题

30 (4分)如果输入的n为质数p的平方,那么solve2(n)的返回值为( )

A p^2+p+1 B n^2+n+1 C n^2+1 D p^4+2p^2+1

31(3分)当输入为正整数时,第一项减去第二项的差值一定( )

A 大于0 B 大于等于0且不一定大于0 C 小于0 D 小于等于0且不一定小于0

32 (3分) 当输入为“5”时,输出为( )

A "651 625" B "650 729" C "651 676" D "652 625"

2 相关知识点

1) 因数

因数,也被称为约数,用于描述两个正整数之间的关系。如果一个整数a除以另一个非零整数b的商是整数,且没有余数,那么我们就说ba的因数。

例如

6的因数有:1、2、3、6

10的因数有:1、2、5、10

注意

任何正整数都有至少两个因数:1和它本身

0的因数在数论中通常不讨论,因为0除以任何非零数都是0,但这不是通常所说的“整除”

一个数的因数总是成对出现的(除了完全平方数,其平方根会出现两次,如4的因数是1,2,2,4)

2)质数

质数和合数是数学中对于自然数(不包括0和1)的两种重要分类

质数 (Prime Number)

一个大于1的自然数,除了1和它本身以外不再有其他因数的数称为质数

例如

2、3、5、7、11、13、17、19等都是质数

注意

质数只有两个正因数:1和它本身

合数

合数是指在大于1的整数中,除了能被1和本身整除外,还能被其他数(0除外)整除的数

4、6、8、9、10、12、14、15等都是合数

注意

合数至少有三个正因数,除1和本身以外还有至少一个正因数

3 思路分析

solve2代码逻辑

1 循环1~sqrt(n) ,对所有因数处理 (n%i==0)

2 n/i==i 时累加i 的平方(等同 n/i * i),这时只有一个因子,累加因子i的平方

3 n/i!=i 时累加i的平方和(n/i)的平方,此时累加2个因子的平方

4 综合上述1,2,3步骤,可以看出solve2函数的主要功能是累加一个数的所有因子的平方和

/*n=8时所以因子分别为 1  8  2  4sum=1*1 + 8 * 8 + 2 * 2 + 4 * 4=85
*/
int solve2(int n){int sum=0;for(int i=1;i<=sqrt(n);i++){if(n%i==0){if(n/i==i){sum+=i*i;}else{sum+=i*i+(n/i)*(n/i);}}}return sum;
}

假设输入的n是绝对值不超过1000的整数,完成下面的判断题和单选题。

判断题

27(2分)如果输入的n为正整数,solve2函数的作用是计算n所有的因子的平方和( )

答案 T

分析

根据对solve2函数的分析可以知,solve2函数的作用是计算n所有的因子的平方和

28 (2分) 第13~14行的作用是避免n的平方根因子i(或n/i)进入第16行而被计算两次( )

答案 T

分析

如果平方根因子是整数时,累加一次,如果去掉13-14行,程序执行逻辑会改变

//以n=4为例
//平方根2 改变前执行 sum+=2 * 2;
sum+=i*i; 
//平方根2 改变后执行 sum+=2 * 2 + (4/2)*(4/2) = 2 * 2 + 2 * 2
sum+=i*i+(n/i)*(n/i);
所以第16造成平方根因子被加2次

29 (2分)如果输入的n为质数,solve2(n)的返回值为n^2+1( )

答案 T

分析

由于质数只有2个因子,1和本身

所以所有因子平方和之和为1的平方+n的平方=n^2+1

单选题

30 (4分)如果输入的n为质数p的平方,那么solve2(n)的返回值为( )

A p^2+p+1 B n^2+n+1 C n^2+1 D p^4+2p^2+1

答案 B

分析

质数p的平方,有3个因子,1和p和p^2

所以所有因子平方和

1^2 + p^2 +( p^2 )^2

由于

n=p^2

整理上述2个式子得

1+n+n^2

所以选B

31(3分)当输入为正整数时,第一项减去第二项的差值一定( )

A 大于0 B 大于等于0且不一定大于0 C 小于0 D 小于等于0且不一定小于0

答案 D

分析

cout<<solve2(solve1(n))<<" "<<solve1((solve2(n)))<<endl;
//solve2(solve1(n)) 先计算solve1函数,再计算solve2函数,对n先平方再求n平方的因子平方和
//solve1(solve2(n)) 先计算solve2函数,再计算solve1函数,先计算n的因子平方和再平方
n=1时
solve1(1)=1
solve2(1)=1
所以solve2(solve1(1))=1
solve1(solve2(n))=1
第一项减去第二项的差值=0n=4时
solve1(4)=16
solve2(16)=1^2+16^2+2^2+8^2+4^2=341
solve2(solve1(4))=341solve2(4)=1^2 +4^2 + 2^2 = 21
solve1(21)=441   
solve1(solve2(4))=441
第一项减去第二项的差值341-441<0n=5时
solve1(5)=25
solve2(25)=1^2+25^2+5^2=651
solve2(solve1(5))=625solve2(5)=1^2 +5^2  = 26
solve1(26)=676
solve1(solve2(4))=676 
第一项减去第二项的差值625-676<0 
所以选D    

32 (3分) 当输入为“5”时,输出为( )

A "651 625" B "650 729" C "651 676" D "652 625"

答案 C

分析

n=5时
solve1(5)=25
solve2(25)=1^2+25^2+5^2=651
solve2(solve1(5))=625solve2(5)=1^2 +5^2  = 26
solve1(26)=676
solve1(solve2(4))=676 
所以选C

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/22383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【微信支付】获取微信开发信息(全网最详细!!!)

前言 1、申请商户号 申请流程与资料 详细申请步骤 申请开通接入微信支付步骤 2、申请微信小程序 申请小程序步骤 查看小程序AppID 3、微信支付普通商户与AppID账号关联 4、获取开发中需要的密钥和证书 4.1、申请证书 4.2、下载证书工具 4.3、证书工具—填写商户信息…

【计算机毕设】基于SpringBoot的个人理财系统设计与实现 - 源码免费(私信领取)

免费领取源码 &#xff5c; 项目完整可运行 &#xff5c; v&#xff1a;chengn7890 诚招源码校园代理&#xff01; 1. 研究目的 个人理财管理对于现代人来说越来越重要&#xff0c;随着金融产品和消费方式的多样化&#xff0c;人们需要一个方便、高效、安全的工具来管理和规划自…

C语言基础学习之链表与共同体

数组: 数据结构---操作时候的特点&#xff1a; 优势&#xff1a;随机访问(存取)方便 不足&#xff1a;插入数据删除数据不方便 链式数据结构--链表 struct stu sl; // s1struct stu s2; // s2struct stu s3; //s3 s1-->s2-->s3 特点: 优势:增力和删除数据方便劣势…

【光谱特征选择】竞争性自适应重加权算法CARS(含python代码)

目录 一、背景 二、代码实现 三、项目代码 一、背景 竞争性自适应重加权算法&#xff08;Competitive Adaptive Reweighted Sampling&#xff0c;CARS&#xff09;是一种用于选择高光谱数据中最具代表性波段的方法。CARS通过模拟“生物进化”过程&#xff0c;自适应地对光谱…

Docker桥接网络分析

前言 《虚拟局域网(VLAN)》一文中描述了虚拟网卡、虚拟网桥的作用&#xff0c;以及通过iptables实现了vlan联网&#xff0c;其实学习到这里自然就会联想到目前主流的容器技术&#xff1a;Docker&#xff0c;因此接下来打算研究一下Docker的桥接网络与此有何异同。 猜测 众所周知…

计算机基础(8)——音频数字化(模电与数电)

&#x1f497;计算机基础系列文章&#x1f497; &#x1f449;&#x1f340;计算机基础&#xff08;1&#xff09;——计算机的发展史&#x1f340;&#x1f449;&#x1f340;计算机基础&#xff08;2&#xff09;——冯诺依曼体系结构&#x1f340;&#x1f449;&#x1f34…

如何在GlobalMapper中加载高清卫星影像?

GlobalMapper在GIS行业几乎无人不知&#xff0c;无人不晓&#xff0c;但它可以直接加载卫星影像也许就不是每个人都知道的了。 这里就来分享一下如何在GlobalMapper中加载高清卫星影像&#xff0c;并可以在文末查看领取软件安装包和图源的方法。 如何加载高清图源 首先&…

45-1 waf绕过 - 文件上传绕过WAF方法

环境准备: 43-5 waf绕过 - 安全狗简介及安装-CSDN博客然后安装dvwa靶场:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客打开dvwa靶场,先将靶场的安全等级调低,然后切换到文件上传 一、符号变异 在PHP中,由于其弱类型特性,有时候仅有一…

4月份新出!外网爆火的大模型黑书!内行人都在学~

今天给大家推荐一本4月份才新出的大型语言模型&#xff08;LLM&#xff09;的权威教程《基于GPT-3、ChatGPT、GPT-4等Transformer架构的自然语言处理》&#xff01;Google工程总监Antonio Gulli作序&#xff0c;一堆大佬推荐&#xff01;这含金量不用多说&#xff0c;在这里给大…

Docker容器搭建ELK日志分析系统

Docker容器搭建ELK日志分析系统 文章目录 Docker容器搭建ELK日志分析系统资源列表基础环境一、创建容器网络二、创建容器挂载目录三、构建systemctl镜像三、构建Elasticsearch镜像3.1、构建Elasticsearch3.2、构建镜像3.3、启动容器3.4、进入容器3.5、查看节点信息 四、构建Log…

Linux系统之mv命令的基本使用

Linux系统之mv命令的基本使用 一、mv命令介绍1. mv命令简介2. mv命令的使用结果 二、mv命令的使用帮助1. 在命令行的帮助信息2. mv常用选项 三、mv命令的基本使用1. 创建源目录和目标目录2. 新建测试文件3. 将源目录文件复制到目标目录4. 将文件进行改名5. 将目录的所有文件转移…

python长方形周长面积 2024年3月青少年编程电子学会python编程等级考试二级真题解析

目录 python长方形周长面积 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python长方形周长面积 2024年3月 python编程等级考试级编程题 一、…

matlab模拟太阳耀斑喷发

代码 function simulate_solar_flare% 参数设置gridSize 100; % 网格大小timeSteps 200; % 时间步数dt 0.1; % 时间步长% 初始化网格[X, Y] meshgrid(linspace(-5, 5, gridSize));Z zeros(size(X));% 设置耀斑初始位置和强度flareCenter [0, 0]; % 耀斑中心位置flareRad…

9 -力扣高频 SQL 50 题(基础版)

9 - 上升的温度 -- 找出与之前&#xff08;昨天的&#xff09;日期相比温度更高的所有日期的 id -- DATEDIFF(2007-12-31,2007-12-30); # 1 -- DATEDIFF(2010-12-30,2010-12-31); # -1select w1.id from Weather w1, Weather w2 wheredatediff(w1.recordDate,w2.recordDat…

SolidWorks功能强大的三维设计软件下载安装,SolidWorks最新资源获取!

SolidWorks&#xff0c;它凭借出色的三维建模能力&#xff0c;使得设计师们能够轻松构建出复杂且精细的机械模型&#xff0c;大大提升了设计效率和质量。 在机械设计领域&#xff0c;SolidWorks凭借其丰富的工具和特性&#xff0c;让设计师们能够随心所欲地挥洒创意。无论是零…

家政预约小程序12用户登录

目录 1 创建全局变量2 创建页面3 搭建页面4 实现登录逻辑总结 在小程序中&#xff0c;登录是一个常见的场景。比如我们在小程序预约或者购买时&#xff0c;通常要求用户先登录后购买。如果使用传统方案&#xff0c;登录这个动作其实最终的目的是为了获取用户的openid。而使用低…

Python学习圣经:从0到1,精通Python使用

尼恩&#xff1a;LLM大模型学习圣经PDF的起源 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;经常性的指导小伙伴们改造简历。 经过尼恩的改造之后&#xff0c;很多小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试机会&#x…

【智能体】文心智能体大赛第二季持续进行中,一起在智能体的海洋里发挥你的创意吧

目录 背景作文小助手AI迅哥问答程序员黄历助手比赛时间第二期赛题丰厚奖品评选说明获奖智能体推荐文章 背景 AI应用&#xff08;智能体&#xff09;&#xff0c;持续火热&#xff0c;一句话就能创建一个有趣、好玩的应用。 可以说一分钟内就能创建一个有创意的智能体。 看大多…

Linux网络-自定义协议、序列化和反序列化、网络计算服务器的实现和Windows端客户端

文章目录 前言一、自定义协议传结构体对象 序列化和反序列化什么是序列化&#xff1f;反序列化 二、计算器服务端&#xff08;线程池版本&#xff09;1.main.cc2.Socket.hpp3.protocol.hpp4.Calculator.hpp5.serverCal.hpp6.threadPool.hpp7.Task.hpp8. log.hpp 客户端Windows客…

我有点想用JDK17了

大家好呀&#xff0c;我是summo&#xff0c;JDK版本升级的非常快&#xff0c;现在已经到JDK20了。JDK版本虽多&#xff0c;但应用最广泛的还得是JDK8&#xff0c;正所谓“他发任他发&#xff0c;我用Java8”。 其实我也不太想升级JDK版本&#xff0c;感觉投入高&#xff0c;收…