Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 정보보안
- 머신러닝
- 스트림암호
- 인공지능
- 신경망구현
- 딥러닝파이썬
- c언어
- C언어알고리즘
- 8086CPU레지스터
- 보안
- 신경망 학습
- 파이썬
- FTZlevel10
- 신경망파이썬
- BOF
- 백준알고리즘
- 활성화함수파이썬
- 딥러닝
- 신경망
- 백준
- 달고나bof
- BOJ
- 버퍼오버플로우
- 소프트맥스함수
- 항등함수
- 파이썬신경망
- 밑바닥부터시작하는딥러닝
- 알고리즘
- C알고리즘
- C언어 알고리즘
Archives
- Today
- Total
HeeJ's
[백준 1977] 완전제곱수 :: Python 본문
문제
M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완전제곱수는 64, 81, 100 이렇게 총 3개가 있으므로 그 합은 245가 되고 이 중 최솟값은 64가 된다.
입력
첫째 줄에 M이, 둘째 줄에 N이 주어진다. M과 N은 10000이하의 자연수이며 M은 N보다 같거나 작다.
출력
M이상 N이하의 자연수 중 완전제곱수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 완전제곱수가 없을 경우는 첫째 줄에 -1을 출력한다.
문제를 보고 차분하게 코드를 작성하면 된다
m = int(input())
n = int(input())
sum, min = 0,n*n
for i in range(1,n):
if(m<=i*i and i*i<=n):
sum += i*i
if(i*i<=min):
min = i*i
if (sum==0):
print(-1)
else:
print(sum)
print(min)
'<Algorithm>_solved > <BOJ>_Python' 카테고리의 다른 글
[백준 2438] 별 찍기 - 1 :: Python (0) | 2020.10.14 |
---|---|
[백준 2739] 구구단 :: Python (0) | 2020.05.15 |
[백준 2557] Hello World :: Python (0) | 2020.05.15 |
[백준 2741] N 찍기 :: Python (0) | 2020.05.14 |
[백준 2558] A + B - 2 :: Python (0) | 2020.05.13 |