猫史档案馆


谁能教我做这道题,急用python的

用户:吉祥如意喵吉祥如意喵查看:7 回复:6 评论:7 创建时间:2021-02-27T20:44:12


10、 打印出 1~1000 之间包含 3 的数字; 如果 3
连在一起的(如
233) 则在数字前加上&
如 果 这 个 数 字 是 质 数 则 在 数 字 后 加 上
*, :
3,13*,23*,&33,43*…&233*…) 。


回复

上一页1 页 / 共 1下一页
屑student屑student

你这个有点难哈

点赞0


评论


漫威粉小王漫威粉小王

首先打印出含有3的数字用for循环,初始值为3,最终值为1000,步长是10。然后检索俩个3只需要将整数类型转化为字符串类型,然后用find函数找出来。检索质数需要用for循环,将每个数字分别从1到这个数字中间的所有的数一个一个对这个数字取余,如果取余结果的值有0,那么这个数就不是质数,用if语句跳过就行了。至于加上&*,最好将数字转化为字符串然后加上

点赞0


评论


屑student屑student

import math #导入math库
#数据量不大就用简单的方法了哈
def su(a): #判断素数的函数
    for i in range(2,int(math.sqrt(a))+1):#判断每一个是否可以整除
        if(a%i==0):   #可以整除,不是质数,直接返回
            return False
    return True#都不可以整除,是质数
def lx3(a):#判断3是否有连续,注意要传入的是字符串
    #喵(
    # 不会用很多函数,这里就手打吧
    f=0#统计有几个3
    for i in a:#遍历
        if(i=="3"):#如果是3
            f+=1#个数加1
    if(f<2):#个数<2不可能有连续
        return False
    elif(f==3):#因为最大数<1000,所以有三个(333)肯定是连续的
        return True
    else:#2个暂时想不到好方法,就穷举吧
        if(len(a)==2):#长度是2必定连续
            return True
        else:#长度为3
            if(a[0]==a[2]=="3"):#3_3不连续
                return False
            else:#其他都连续
                return True
for i in range(1000):
    b=str(i)#转化成字符串存放
    if("3" in b):#如果有3
        #下面两个判断顺序不能换
        if(lx3(b)):#分别判断
            b="&"+b
        if(su(i)):#分别判断
            b=b+"*"
        print(b,end=",")#输出,逗号隔开
#真的好多啊
#BUG可以反馈

点赞1


评论


屑student屑student

import math #导入math库
#数据量不大就用简单的方法了哈
def su(a): #判断素数的函数
    for i in range(2,int(math.sqrt(a))+1):#判断每一个是否可以整除
        if(a%i==0):   #可以整除,不是质数,直接返回
            return False
    return True#都不可以整除,是质数
def lx3(a):#判断3是否有连续,注意要传入的是字符串
    #喵(
    # 不会用很多函数,这里就手打吧
    f=0#统计有几个3
    for i in a:#遍历
        if(i=="3"):#如果是3
            f+=1#个数喵数<2不可能有连续
        return False
    elif(f==3):#因为最大数<1000,所以有三个(333)肯定是连续的
        return True
    else:#2个暂时想不到好方法,就穷举吧
        if(len(a)==2):#长度是2必定连续
            return True
        else:#长度为3
            if(a[0]==a[2]=="3"):#3_3不连续
                return False
            else:#其他都连续
                return True
nu=True#是不是第一个
for i in range(1000):
    b=str(i)#转化成字符串存放
    if("3" in b):#如果有3
        #下面两个判断顺序不能换
        if(lx3(b)):#分别判断
            b="&"+b
        if(su(i)):#分别判断
            b=b+"*"
        if(nu):#是第一个
            print(b,end="")
            nu=False
        else:
            print(","+b,end="")#输出,逗号隔开
#真的好多啊
#BUG可以反馈

点赞0


评论


伴雪纷飞伴雪纷飞

def s(i):  # 判断素数
    for e in range(2, int(i)):
        i = str(i)
        if int(i) % e == 0 and len(i.split('3'))-1 == 1:
            print(i)
            break
        elif len(i.split('3'))-1 > 1 and int(i) % e == 0:
            print('&', i)
            break
        elif len(i.split('3'))-1 == 1:# 判断是否含有3
                print('*', i)
                break
        elif len(i.split('3'))-1 > 1:
            print('*', '&', i)
            break
for i in range(1000):  # 遍历一下
    s(i)

点赞0


评论


umbrallawwumbrallaww

az,用math

点赞0


评论