测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A25742. 提示信息:回文数:设n是一任意自然数。若将n的各个位数上的数字反向排列所得自然数n1与n相等,则称n为一回文数。例如:若n=1234321,则称n为一回文数。平方回文数:指一个数不仅是回文数,并且这个数还是某一个数的平方。例如:121,是一个回文数,并且是11的平方数。编程实现:给定一个正整数M(100<M<2000),输出100到M之间(包含M)的平方回文数的个数。例如:M为150,则在100…

填空题 容易

题目描述

提示信息:

回文数:设n是一任意自然数。若将n的各个位数上的数字反向排列所得自然数n1与n相等,则称n为一回文数。

例如:若n=1234321,则称n为一回文数。

平方回文数:指一个数不仅是回文数,并且这个数还是某一个数的平方。

例如:121,是一个回文数,并且是11的平方数。

编程实现:

给定一个正整数M(100<M<2000),输出100到M之间(包含M)的平方回文数的个数。

例如:M为150,则在100到150之间的平方回数有1个,为121,输出1。

输入描述:

输入一个正整数M

输出描述:

输出100到M之间(包含M)的平方回文数的个数

样例输入:

150

样例输出:

1

参考答案

#参考答案1 a=input() c=int(a) b=0 for i in range(100,c+1): c=str(i) d=len(c) e=0 for j in range(11,i): if j*j==i: e=1 break if c[0]==c[d-1] and c[1]==c[d-2] and e==1: e=0 b+=1 print(b) #参考答案2 num=int(input()) l1=[] pingf=0 for i in range(num): i=str(i) if i[ : :-1]==i: l1.append(int(i)) for i in l1: for j in range(i): if j*j==i and i<2000 and i>100: pingf+=1 print(pingf)

答案解析

评分标准:

7分:能正确输出一组数据;

7分:能正确输出两组数据;

8分:能正确输出三组数据;

8分:能正确输出四组数据。

上一题 下一题