2016年8月22日 星期一

python 程式設計50題測試範例-7

7、輸入一連串數字(<20個數字)直到0,對每一個數字判斷下列
  (1)是否為71113的倍數  (2)位數和為奇數或偶數
  (3)平方根為何?            4)是否為質數?
  (5)列出所有質因數

輸入範例一
10001
輸出範例一
1    不為71113的倍數
2    位數和為偶數
3    平方根為100.00499
4    不是質數
5    73*137
輸入範例二
100001
輸出範例二
1    不為71113的倍數
2    位數和為偶數
3    平方根316.29347
4    不是質數
5    11*9091
輸入範例三
65537
輸出範例三
(1)   不為71113的倍數
(2)   位數和為偶數
(3)   平方根為256.0019
(4)   是質數
(5)   65537
輸入範例四
1
輸出範例四
1    不為71113的倍數
2    位數和為奇數
3    平方根為1
4    不是質數
5     
輸入範例五
2
輸出範例五
1    不為71113的倍數
2    位數和為偶數
3    平方根為1.414
4    是質數
5    2


程式

#coding:Big5

#輸入一數字,列出所有質因數
#7、輸入一連串數字(<20個數字)直到0,對每一個數字判斷下列
#  (1)是否為7、11、13的倍數  (2)位數和為奇數或偶數
#  (3)平方根為何?      (4)是否為質數?
#  (5)列出所有質因數

print("7、輸入一連串數字(<20個數字)直到0,對每一個數字判斷下列")
print("  (1)是否為7、11、13的倍數    (2)位數和為奇數或偶數")
print("  (3)平方根為何?      (4)是否為質數?")
print("  (5)列出所有質因數")
print()


n=1
while (n==1):

  print ("輸入一數字,列出所有質因數")

  while True:
      P = input('請輸入 P (整數) :')
      try:
          P = int(P)
       
      except ValueError:
          print ('這是不合法的輸入.  請再輸入一次...')
          continue
        
      if ( P >= 0 ):
          break

  print()

  if P==0:
     n=0

  print(P,"的質因數有",end="")

  i=2
  P1=P
  k=0
  while (P>1):
        while(P%i==0):
                print(i," ",end=""); 
                P=P/i
                k=k+1
                
        i=i+1

  print()
  print()
  
  if k==1 :
     print(P1,"是一個質數")
  else :
     print(P1,"不是一個質數")
     
  print()

  P=P1**0.5
  print(P1,"的平方根=",'{:6.4f}'.format(P))
  print()

  if (P1%7!=0) and (P1%11!=0) and (P1%13!=0):
     print(P1,"不為7或11或13的倍數")
  else :
     print(P1,"為7或11或13的倍數")

  print()

  P2=str(P1)
  k=0
  for i in P2 :
     k=int(i)+k

  if (k%2==0) :
     print(P1,"位數和",k,"為偶數")
  else :
     print(P1,"位數和",k,"為奇數")

  print()   

   


結果
================== RESTART: D:/程式語言 Python 入門/50題/Ex50-7.py ==================
7、輸入一連串數字(<20個數字)直到0,對每一個數字判斷下列
  (1)是否為7、11、13的倍數     (2)位數和為奇數或偶數
  (3)平方根為何?      (4)是否為質數?
  (5)列出所有質因數

輸入一數字,列出所有質因數
請輸入 P (整數) :10001

10001 的質因數有73  137  

10001 不是一個質數

10001 的平方根= 100.0050

10001 不為7或11或13的倍數

10001 位數和為偶數

沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

 2024_09 作業3  (以Node-Red 為主  Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker  2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...