实现相对素数(m,n)函数

时间:2015-02-23 21:51:18

标签: python-3.x

我正在尝试使用Python获得以下答案。

  

输入您的姓名:dog

     

输入以逗号分隔的4个数字,Cat,Lion或Eulerphi:1,1,1,2。

     

(1,1)和(1,2)之间的距离是1.0。

     

输入以逗号分隔的4个数字,Cat,Lion或Eulerphi:Eulerphi

     

输入一个数字:4

     

1是Euler Phi for 4

     

3是Euler Phi 4

     

输入以逗号分隔的4个数字,Cat,Lion或Eulerphi:Lion

     

也许你想唱13首布莱恩马克歌曲

     

输入以逗号分隔的4个数字,Cat,Lion或Eulerphi:Cat

     

你正在循环迭代4

     

输入以逗号分隔的4个数字,Cat,Lion或EulerPhi:0,0,0,10

     

(1,1)和(1,2)之间的距离是10.0

     谢谢你的狗。点之间的最小距离为1.0

唯一的问题是当我输入EulerPhi时,Python不打印

  

1是Euler Phi for 4

     

3是Euler Phi for 4

     

谢谢你,狗之间的最小距离是1.0

我不知道要写什么来打印出来。教授说使用GCD方法

使用def relativeprime(m,n)。印刷出上述答案可以帮助我吗?我需要帮助编写EulerPhi并打印出“谢谢你的狗。点之间的最小距离为1.0”

以下是我实施的代码。

from math import sqrt.

from random import randint

def main():

    name=input("Enter your name")

    loopindex=1

    distance=0

    smallestdistance=10000000000000000

    while distance <=10:
        kim=input("Enter 4 numbers separated by commas, Cat, Lion, or EulerPhi:")
        if kim=="Cat":
            print("you are on loop iteration",loopindex)
        elif kim=="Lion":
            print("Perhaps you want to sing", randint(1,100),"Bryan Mark songs")

        elif kim=="EulerPhi":
            number=eval(input("Enter a number: "))
            def relativePrime(m,n):
                m=1
                n=0
                n,m= m,n%m
                for i in range(i,number):
                    if relativeprime(i,number):
                        print(i, "is an EulerPhi for,", str(number))

        else:
            n1,n2,n3,n4=eval(kim)
            d=sqrt((n1-n3)**2+(n2-n4)**2)
            print("The distance between (",n1,",",n3,") and (",n2,",",n4,") is",d)
            if d< smallestdistance:
                    smallestdistance=d
                    print("Thank you",name,".","The smallest distance between points was",d)
        loopindex=loopindex+1
main()

1 个答案:

答案 0 :(得分:0)

您只定义了一个名为relativePrime的函数。你永远不会把它叫做我能看到的任何地方。