6-1 函数的定义 (5 分)

设f(x)=x* x+2, 从键盘上给a,b,c输入数值,求f(a)+f(b)+f(c)的值。利用函数来实现,完成下面的程序。 #完成函数f @@@

a=int(input( )) b=int(input( )) c=int(input( )) print(f(a)+f(b)+f(c))

参考答案

写法一

f = lambda x: x * x + 2

写法二

def f(x):
    return x * x + 2

6-2 求素数 (32 分)

素数是仅可以被自身和1整除的数。0和1不是素数。 编写一个名为isPrime的函数,将一个整数作为参数,如果该参数是素数则返回True,否则返回False。

函数接口定义:

isPrime(n)

n是一个整数,n为素数时返回True,n不为素数则返回False。例如,5是素数,函数返回True,6不是素数,函数返回False。

裁判测试程序样例:

/* 请在这里填写答案 */

def main():
     x = int(input())
     if isPrime(x):
         print(x,"is a prime!")
     else:
         print(x, "is not a prime!")

main()

输入样例1:

在这里给出一组输入。例如:

 5



结尾无空行

输出样例1:

在这里给出相应的输出。例如:

5 is a prime!



结尾无空行

输入样例2:

在这里给出一组输入。例如:

6



结尾无空行

输出样例2:

在这里给出相应的输出。例如:

6 is not a prime!



结尾无空行

输入样例3:

在这里给出一组输入。例如:

0



结尾无空行

输出样例3:

在这里给出相应的输出。例如:

0 is not a prime!



结尾无空行

参考答案

import math


def isPrime(number):
    result = False
    if number > 1:
        for i in range(2, int(math.sqrt(number)) + 1):
            if (number % i) == 0:
                break
        else:
            result = True
    return result

6-3 回文数 (10 分)

本题要求实现一个函数,判断某整数是否是回文数,如果是,返回True,否则返回False。回文数指的是,若某整数正着读和倒着读都一样,则称该数为回文数。比如8778、12321等。

函数接口定义:

def isHuiwen(n)

其中参数n是任意整数。

裁判测试程序样例:

/* 请在这里填写答案 */
n = int(input())
if isHuiwen(n):
    print("yes")
else:
    print("no")

输入样例:

12321



结尾无空行

输出样例:

yes



结尾无空行

输入样例:

1232



结尾无空行

输出样例:

no



结尾无空行

参考答案

def isHuiwen(number):
    number = str(number)
    reversal = ""
    for s in number:
        reversal = s + reversal
    return True if number == reversal else False

6-4 编写函数判断水仙花数 (10 分)

给定一个三位数n,要求编写函数isflower(n)判断n是否为水仙花数,如果是,则返回True,否则返回False。所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153等于1的立方加上5的立方加上3的立方之和。

函数接口定义:

在这里描述函数接口。例如:
isflower (n)

其中 n 是传入的参数,表示需要判断的三位数。 n 的值的范围为[100,999]。

裁判测试程序样例:

/* 请在这里填写答案 */

n = eval(input())
if isflower(n)==True:
    print('Yes')
else:
    print('No') 

输入样例:

在这里给出一组输入。例如:

371



结尾无空行

输出样例:

在这里给出相应的输出。例如:

Yes



结尾无空行

参考答案

def isflower(number):
    num_str, sum_all = str(number), 0
    for i in num_str:
        sum_all += int(i) ** 3
    return True if number == sum_all else False

7-1 jmu-python-分段函数 (10 分)

本题目要求计算下列分段函数f(x)的值(x为从键盘输入的一个任意实数):

分段函数.jpg
分段函数.jpg

输入格式:

输入在一行中给出实数 x。

输出格式:

在一行中按“f(x)=result”的格式输出,其中x与result都保留两位小数

输入样例:

0.76



结尾无空行

输出样例:

f(0.76)=1.20

参考答案

def f(x):
    if x < 3:
        return 1.2
    elif x == 3:
        return 10
    elif x > 3:
        return 2 * x + 1


n = eval(input())
print("f({:.2f})={:.2f}".format(n, f(n)))

7-2 列出完数 (10 分)

输入一个整数n,要求输出[1,n]范围内的所有完数。完数是一个正整数,该数恰好等于其所有不同真因子之和。例如,6、28是完数,因为6=1+2+3,28=1+2+4+7+14;而24不是完数,因为24≠1+2+3+4+6+8+12=36。

输入格式:

测试数据有多组,处理到文件尾。每组测试数据输入一个整数n(1≤n≤10000)。

输出格式:

对于每组测试,首先输出n和一个冒号“:”;然后输出所有不大于n的完数(每个数据之前留一个空格);若[1,n]范围内不存在完数,则输出“NULL”。引号不必输出。具体输出格式参考输出样例。

输入样例:

100
5000
5

输出样例:

100: 6 28
5000: 6 28 496
5: NULL

出处:

ZJUTOJ 1190

参考答案

详细解析