信息学竞赛

练习与作业

特色教育 >>信息学竞赛 >>练习与作业

模拟题DAY 3

来源:程军康|编辑日期:2009-11-06 12:24:37|点击数: |发布:55

模拟题DAY3

题一 亲和数 ( Amicable Number )

【问题描述】
某一天, tenshi 看了一本趣味数学书,上面提到了亲和数:定义数对 (x,y) 为亲和数对当且仅当 x 、 y 为不同正整数,且 x 、 y 各自的所有非自身正因子之和等于另一个数。例如 (220,284) 和 (280,224) 都是亲和数对,因为:

220 的所有非自身正因子之和为: 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284

284 的所有非自身正因子之和为: 1 + 2 + 4 + 71 + 142 = 220

数对 (x,y ) 跟 (y,x) 被认为是同一数对,所以我们只考虑 x

任 务 : tenshi 对某个范围内的亲和数对的数量非常感兴趣,所以希望你能帮她编写一个程序计算给定范围内的亲和数对的数量。给定一个范围 A 到 B , 如果 A ≤ x ≤ B ,则我们称 (x,y) 在范围 [A,B] 内。

【输入格式】
从文件的第一行分别读入正整数 A 和 B ,其中 A 、 B 满足

1 ≤ A ≤ B ≤ 10^8B-A ≤ 10^5

【输出格式】
输出文件只有一行,就是 [A,B] 内亲和数对的数量

【输入输出样例】

输入:
amicable.in
200 1200

输出:
amicable.out
2

注: [200,1200] 内的数对只有两个,分别是 (220,284) 和 (1184 1210)

题二 表达式的转换

【问题描述】
平常我们书写的表达式称为中缀表达式,因为它将运算符放在两个操作数中间,许多情况下为了确定运算顺序,括号是不可少的,而后缀表达式就不必用括号了。

后缀标记法:书写表达式时采用运算符紧跟在两个操作数之后,从而实现了无括号处理和优先级处理,使计算机的处理规则简化为:从左到右顺序完成计算,并用结果取而代之。

例如: 8–(3+2*6)/5+4 可以写为:
8 3 2 6 * + 5 / – 4 +
其计算步骤为:
8 3 2 6 * + 5 / – 4 +
8 3 12 + 5 / – 4 +
8 15 5 / – 4 +
8 3 – 4 +
5 4 +
9
编写一个程序,完成这个转换,要求输出的每一个数据间都留一个空格。

上一篇:

下一篇: