#0 
import numpy as np
# 1)0부터 215까지의 정수를 포함하는 NumPy 배열을 생성
arr01=np.arange(216)  
arr_3d=arr01.reshape(6,6,6) 
#1-1 전체 행 선택, -1 마지막열, 두칸씩 건너띄기
array_lastrow = arr_3d[:, -1, ::2] 
print(array_lastrow)

#1-2
array_12=[]
for x in np.nditer(arr_3d):     # NumPy 배열의 각 요소에 대해 반복 (3중 for문 사용 X)
    if x % 12 ==0 :
        array_12.append(x)      # 리스트에 담았더니 출력이 안깔끔해서

NewArray12=np.array(array_12)
print(NewArray12)               # 넘파이 배열에 옮겨서 출력함

#1-3 1-1번문제의 배열 - 1-2번문제의 배열의 결과를 출력하세요. (1-2)번문제의 배열의 모양을 변경해야합니다.)

print(array_lastrow - NewArray12.reshape(array_lastrow.shape))

#2 2부터 100까지의 정수를 포함하는 일차원 NumPy 배열을 생성하세요

arr02=np.arange(2,101)

# 2-1) Boolean Indexing을 통해 에라토스테네스의 체를 구현하여, 배열안의 소수를 구하세요.
#각 수가 갖는 약수는 해당 수의 제곱근을 기준으로 대칭을 이룸

for i in range(2,int(np.sqrt(len(arr02))) + 1) :
    if arr02[i-2] != 0:
        j=2
        while i* j <= len(arr02)+1 :
            arr02[i*j-2] = 0
            j+=1

for i in range(0, len(arr02) ) :
    if arr02[i] !=0 :
        print(arr02[i])