一个数学问题的Python解决方法
Posted yueluhun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个数学问题的Python解决方法相关的知识,希望对你有一定的参考价值。
一个正整数n。
它是由数字3和7组成,且这个数以及这个数
各位数字之和都是3和7的倍数,求n的最小值
要有过程。
# coding=utf-8 import numpy as np x_num = 1 while True: x_str = str(x_num) #数字转换为字符 x_str_list = list(x_str) #为将元组转换为列表 x_str_len = len(x_str_list) #列表元素个数 x_com=x_num #为了后续是否因为不满足条件而到导致数字继续推后 x_str_list_num= map(int, x_str_list) #将字符数组转化为数字数组 sum_x=np.sum(x_str_list_num) #对一位数组进行求和 for word in x_str_list: #字符串字符依次提取 if ((int(word)==3 or int(word)==7) and (x_num%21==0) and (sum_x%21==0) and (‘3‘ in x_str_list) and (‘7‘ in x_str_list)): #该数字必须含有3和7,且这个书是21的倍数,且各个位数之和为3和7的倍数 continue #继续本循环 else: x_num = x_num + 21 #如果不满足条件的话,数字后移 break #跳出最近的一个循环 if x_com==x_num: #如果满足要求,即上一个for循环正常结束,跳出while循环 break else: print(x_num) continue #如果条件不满足,继续while循环 print(x_num)
结果是:3333377733
计算效率有待提升
以上是关于一个数学问题的Python解决方法的主要内容,如果未能解决你的问题,请参考以下文章