阅读以下说明和流程图,填写流程图和问题中的空缺,将解答填入答题纸对应栏内。 【说明】 如果一个自然数N恰好等于它所有不同的真因子(即N的约数以及1,但不包括N)之和S,则称该数为“完美数”。例如6=1+2+3,28=1+2+4+7+14,所以,6和

admin2020-04-30  30

问题 阅读以下说明和流程图,填写流程图和问题中的空缺,将解答填入答题纸对应栏内。
【说明】
    如果一个自然数N恰好等于它所有不同的真因子(即N的约数以及1,但不包括N)之和S,则称该数为“完美数”。例如6=1+2+3,28=1+2+4+7+14,所以,6和28都是完美数。显然,6是第1个(即最小的)完美数。
    下面流程图的功能是求500以内所有的完美数。
【流程图】

    循环开始框中注明:循环变量=初始值,终值[,步长],步长为1时可以缺省。
【问题】
    如果某自然数小于其所有真因子之和(例如24<1+2+3+4+6+8+12),则称该自然数为亏数;如果某自然数大于其所有真因子之和(例如8>1+2+4),则称该自然数为赢数;如果某自然数等于从1开始的若干个连续自然数之和(例如10=1+2+3+4)则称该自然数为三角形数。据此定义,自然数496是(5)________________。
供选择答案:
  A.亏数    B.赢数    C.完美数,非二角形数    D.完美数和三角形数

选项

答案(1)2 (2)N%K或N mod K或N/K*K-N或等效的其他形式 (3)S+K或K+S等效形式 (4)S (5)D或完美数和三角形数

解析 本题考查程序算法流程图的设计。
    流程图中,外循环是对自然数N=6,7,…,500生行的,即判断每个N是台为完美数。显然,内循环用于判断每个K是否为N的因子。N的因子只可能在2,3,…,N/2中,因此,(1)处应填2。为判断K是否为N的因子,即N能否被K整除,或N除以K的余数是否为0,可以采用多种方法:例如判断N%K,或N mod K,或N/K*K-N是否为0。因此(2)处可填N%K,或N mod K,或N/K*K-N。
    变量S用于累加N的所有因子。开始时S=1,以后每次发现因子K后,就应执行S+K→S。因此(3)处应填S+K或K+S。
    随后应比较N与S是否相等用于判断N是否为完美数。因此(4)处应填S。
    在问题中,由于496=24×31=1+2+4+8+16+31+62+124+248,即496等于其所有真因子之和,因此496是完美数。同时,496=31×32/2=1+2+3+…+31,因此496是三角形数。
转载请注明原文地址:https://kaotiyun.com/show/H2jZ777K
0

最新回复(0)