求小于100的所有合数 python_python100例

这篇博客通过多个实例展示了如何使用Python解决数学问题,包括奖金计算、完全平方数查找、排序算法、斐波那契数列、九九乘法表、兔子繁殖问题、素数判断以及水仙花数等。涉及到的Python编程技巧有循环、数组操作、数学函数以及条件判断等。
摘要由CSDN通过智能技术生成

实例002:"个税计算"

题目: 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

利用解数学题的方式来处理程序.

让程序完成程序擅长的事情,循环及计算.

涉及知识点

1.for循环

2.二维数组

#数据初始化

profit=int(input('Show me the money: '))

bonus=0

thresholds=[[0, 100000], [100000, 200000], [200000, 400000], [400000, 600000], [600000, 1000000],[1000000, profit]]

rates=[0.1, 0.075, 0.05, 0.03, 0.015, 0.01]

#逻辑代码

for i in range(len(thresholds)):

if profit>=thresholds[i][1]:

bonus += (thresholds[i][1]-thresholds[i][0]) * rates[i]

else:

profit = profit - thresholds[i][0]

bonus = bonus + profit * rates[i]

break

print(bonus)

实例003:"完全平方数"

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

涉及知识点:

1.切记要让程序自己完成所有计算,写代码是一个翻译的过程,不是计算的过程.

2.math,round,sqrt

import math

for x in range(0,10000):

if (round(math.sqrt(x+100))-math.sqrt(x+100))==0 and (round(math.sqrt(x+168))-math.sqrt(x+168)==0):

print(x)

break

实例005:"三数排序"

题目:输入三个整数x,y,z,请把这三个数由小到大输出。

input(),输入的都是字符串,如果是比较数字,需要用int()转换成数字类型,不然会比较字符串对应的ascii码.

用append方法在列表中新增数据.

#数据初始化,用循环初始化列表.

raw=[]

for i in range(3):

x = input("please input a number")

raw.append(int(x))

print(raw)

#核心方法是用一个数和其他数比较大小,第一次选出最小的一个放在第一位,第二次选出次小的,以此类推.

#需要注意的是,选出最大的后,这个最大的值不应该再作为比较的对象.

for x in range(len(raw)):

for y in range(x,len(raw)):

if int(raw[x])>int(raw[y]):

raw[x],raw[y] = raw[y],raw[x]

print(raw)

#方法二,直接调用内置函数

print(sorted(raw))

实例006:斐波那契数列

题目:1,1,2,3,5...

if 判断是没有break的,只有循环才有.

p = input("please input a number ")

p = int(p)

raw=[1,1]

if p<=2:

print(raw[0:p])

else:

for i in range(p-2):

raw.append(raw[i] + raw[i+1])

print(raw[0:p])

实例008

题目:输出九九乘法表

9行,所以重复9次,从1到9,即i in range(1,9+1)

列与行的关系是列=行,即j in range(1,i+1)

for i in range(1,10):

for j in range(1,i+1):

print('%d*%d=%2ld '%(i,j,i*j),end='')

print()

实例011

题目 有一对兔子,从出生后第4个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

i = int(input("繁殖几个月? "))

i = i//3

print("现在有%d只兔子"%(2**(i+1)))

实例012:100到200的素数

题目 判断101-200之间有多少个素数,并输出所有素数。

可以直接用公式.

也可以逆向思维,用去除法.

#定义一个计算x内素数的函数

def primes(x):

a = []

b = []

#生成一个范围内的数列

for i in range(1,x+1):

b.append(i)

#print(b)

#生成一个范围内的合数

for i in range(2, x):

for j in range(i, x):

if j*i<=x:

a.append(j*i)

#print(a)

#列表a除重

##转换成列表达到除重,再转换回来

a = list(set(a))

#print(a)

#把合数去除,剩余质数

for i in range(len(a)):

b.remove(a[i])

#print(len(b))

#print(b)

return b

b = primes(100)

a = primes(200)#

#print(b)

#print(a)

for i in range(len(b)):

a.remove(b[i])

print(len(a))

print(a)

实例013:所有水仙花数

题目 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

刚刚开始没想到str也是list.

两种方法都可以,后面那个简单一些.

a = []

b = []

for i in range(100,1000):

a.append(i)

for i in range(len(a)):

b = list(str(a[i]))

if (int(b[0]))**3+(int(b[1]))**3+(int(b[2]))**3 == a[i]:

print(a[i])

for i in range(100,x+1):

s = str(i)

one = int(s[0])

ten = int(s[1])

hun = int(s[2])

if i == one**3 + ten**3 + hun**3:

print(i)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值