1.设某四位数的各位数字的平方和等于100,问共有多少个这种四位数?    答案49
i=0
for a in range(1,10):
for b in range(10):
for c in range(10):
for d in range(10):
if a**2+b**2+c**2+d**2==100:
i+=1
print(i)
2斐波那契数列的前二项是1,1,以后每一项都是前面两项之和。求前30个斐波那契数之和。    答案2178308.
f1=1
f2=1
sums=2
for i in range(28):
f3=f1+f2
sumspython新手编程100例+=f3
f1=f2
f2=f3
print(sums)
3. 所谓“水仙花数”是指一个三位数,其各位数字的三次方之和等于该数本身,例如:153=1^3+3^3+5^3,故153是水仙花数,求[100,999]之间所有水仙花数之和。答案1301
sums=0
for i in range(100,1000):
a=i//100
b=(i//10)%10
c=i%10
if (i==a**3+b**3+c**3):
sums+=i
print(sums)
4. 用一元纸币兑换一分、两分和五分的硬币,要求兑换硬币的总数为60枚,问共有多少种换法? (注:在兑换中,一分、两分或五分的硬币数可以为0枚)    答案11
count=0
for x in range(61):
    for y in range(61):
        for z in range(61):
            if(x+2*y+5*z==100 and x+y+z==60):
                    count+=1
print(count)
5. 编写程序,求共有几组i,j,k符合算式ijk+kji=1534,其中i,j,k是[0,9]之间的一个整数且i<k。    答案2
s=0
for i in range(1,10):
    for j in range(10):
        for k in range(1,10):
            if(i*100+j*10+k+k*100+j*10+i==1534 and i<k):
                s+=1
print(s)
6.所谓回文数是从左至右或从右至左读起来都是一样的数字,如:121是一个回文数。编写程序,求在100-900的范围内所有能被3整除的回文数的和。  答案12987
sums=0
for i in range(100,901):
    a=i//100
    b=(i//10)%10
    c=i%10
    if (a==c and i%3==0):
      sums+=i
print(sums)
7.已知一个数列的前三项为0,0,1,以后各项都是其相邻的前三项之和,求该数列前30项之和。    答案18947744
f1=0
f2=0
f3=1
sums=1
for i in range(27):
f1,f2,f3=f2,f3,f1+f2+f3
sums+=f3
print(sums)
8.爱因斯坦走台阶:有一台阶,如果每次走两阶,最后剩一阶;如果每次走三阶,最后剩两阶;如果每次走四阶,最后剩三阶;如果每次走五阶,最后剩四阶;如果每次走六阶,最后剩五阶;如果每次走七阶,刚好走完.求满足上述条件的最小台阶数是多少?    答案119
x=0
while True:
if (x%2==1 and x%3==2 and x%4==3 and x%5==4 and x%6==5 and x%7==0):
print(x)
break
else:
x+=1
9.已知:Sn=2/1+3/2+4/3+…+(n+1)/n, 求Sn不超过50的最大值(按四舍五入的方式精确到小数点后第三位)。    答案49.395
sn=0
n=1
while sn<=50:
    sn+=1+1/n
    n+=1
print(round(sn-(n+1)/n,3))
10.求在四位数的偶数中,所有各位数字之积(且不为0)是30的倍数的数的和。答案3415206
n=0
for i in range(1000,10000):
    a=i%10
    b=(i//10)%10
    c=(i//100)%10
    d=i//1000
    if a*b*c*d%30==0 and a*b*c*d!=0 and a%2==0:
        n+=i
print(n)
11.求出1到3000之间的能被3整除的前若干个数之和,当和值大于600时退出并输出和值。答案630
n=0
for i in range(1,3001):
    if i%3==0 and n<600:
        n+=i
print(n)
12.(x,y,z)满足方程:x^2+y^2+z^2=55^2(注:要求 x > y > z),则(x,y,z)称为方程的一个解。试求方程的整数解(包括负整数解)的个数。答案62
n=0
for x in range(-55,56):
    for y in range(-55,56):
        for z in range(-55,56):
            if x*x+y*y+z*z==55*55 and x>y>z:
                n+=1
print(n)
13.一个数如果刚好与小于它的所有因子之和相等,则称该数为一个“完数”,求出600以内的所有完数的平方和。答案246836
result=0
for j in range(1,601):
    sums=0
    for k in range(1,j):
        if j%k==0:
            sums+=k
    if sums==j:
        result+=sums**2
print(result)
14.倒勾股数是满足公式: 1/A^2+1/B^2=1/C^2 的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/156^2+1/65^2=1/60^2。假定A>B>C,求A,B,C均小于或等于100的倒勾股数有多少组?答案5