Python-基礎数学(問題)
26114 ワード
Q.100から1000までの整数について、約数、小数、小数を出力するプログラムを作成します
import random
num = random.randint(100, 1000)
print('random number : {}'.format(num))
divisor = []
primeFactorization = []
prime = []
for i in range(1, num+1):
#약수
if num % i == 0:
divisor.append(i)
#소수
if num != 1:
flag = True
for j in range(2, i):
if i % j == 0:
flag = False
break
if(flag):
prime.append(i)
#소인수 = 약수이면서 소수인거
for x in divisor:
if x in prime:
primeFactorization.append(x)
print("약수 : ", divisor)
print("소수 : ", prime)
print("소인수 : ", primeFactorization)
Q.100から1000までの整数を小数点以下に分解し、小数点以下の指数を出力するプログラムを作成する
import random
num = random.randint(100, 1000)
print('random number : {}'.format(num))
n = 2
#소인수
primeFactorization = []
while n <= num:
if num % n == 0:
primeFactorization.append(n)
num /= n
else:
n += 1
prime = set(primeFactorization)
print("소인수 : ", primeFactorization)
for x in prime:
count = primeFactorization.count(x)
print(f'{x} : {count}개')
Q.100から1000までの2つの数字について、プログラムを作成して公約数と最大公約数を出力し、認知を出力します。
# def gcd(num1, num2):
# while num2 > 0:
# num1, num2 = num2, num1 % num2
# return num1
import random
num1 = random.randint(100, 1000)
num2 = random.randint(100, 1000)
print(f'random num1 : {num1}\nrandom num2 : {num2}')
#공약수
commonDivisor = []
for i in range(1, min(num1, num2)+1):
if num1 % i == 0 and num2 % i == 0:
commonDivisor.append(i)
gcd = max(commonDivisor)
print(f'공약수 : {commonDivisor}')
print(f'최대공약수 : {gcd}')
print(f'{num1}과 {num2}는 서로수이다.') if gcd == 1 else print(f'{num1}과 {num2}는 서로소가 아니다.')
Q.最大公約数と最小公約数を出力するプログラムを、100から1000までの2つの数字について作成します。
import random
num1 = random.randint(100, 1000)
num2 = random.randint(100, 1000)
print(f'random num1 : {num1}\nrandom num2 : {num2}')
multi = num1 * num2
while num2 > 0:
num1, num2 = num2, num1 % num2
print(f'최대공약수 : {num1} 최대공배수 : {int(multi/num1)}')
Q.ユーザが入力した数字を利用して、以下の内容に基づいて変換パターンのコードを作成する。
num = int(input("10진수 입력: "))
print(f'2진수 변환 {bin(num)}')
print(f'8진수 변환 {oct(num)}')
print(f'16진수 변환 {hex(num)}')
Q.次の数列の一般項を求め、次にn項目の値和を求めるプログラムを作成する
a1 = int(input("a1을 입력해주세요 : "))
n = int(input("n을 입력해주세요: "))
d = int(input("공차를 입력해주세요 : "))
# 공식 an = a1 + (n - 1)*d
num = 1
answer = a1
total = answer
while num < n:
answer += d
total += answer
num += 1
print(answer)
print("비교: ", a1 + (n - 1)*d)
print(total)
print("비교: ", int((n * (a1 + answer))/2))
Q.次の数列の一般項を求め、n個の値和を求めるプログラムを作成します。
import math
a1 = int(input("a1을 입력해주세요 : "))
n = int(input("n을 입력해주세요: "))
r = int(input("r을 입력해주세요 : "))
num = 1
answer = a1
total = a1
while num < n:
answer *= r
total += answer
num += 1
print(answer)
print(a1 * int(math.pow(r, n - 1)))
print(total)
print(int(a1 * (1 - math.pow(r, n))/ (1 - r)))
Q.フィボナッチ数列からn項とn項の和を出力するプログラムを作成します。
num = int(input("n 을 입력해주세요: "))
n = 1
value = 0
value1 = 0
value2 = 0
sumvalue = 0
while n <= num:
if n == 1 or n == 2:
value = 1
value2 = value
value1 = value
sumvalue += value
else:
value = value2 + value1
value2 = value1
value1 = value
sumvalue += value
n += 1
print(value)
print(sumvalue)
整列
反復可能オブジェクト(=長さn)については、反復は許可されず、r個を抽出することによってリストされる.
選ばれた順に並べられているので、順番が有意義です.
(つまり、同じ値を抽出しても順序が異なる場合は異なる方法で処理する.)
permutations(반복 가능한 객체, r)
コンポジット
combinations(반복 가능한 객체, r)
(Python)シーケンス、コンビネーション、重複シーケンス、重複コンビネーションを容易に実現
Reference
この問題について(Python-基礎数学(問題)), 我々は、より多くの情報をここで見つけました https://velog.io/@sdubee10/Python-기초수학문제テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol