-
[백준 2581] 소수C 프로그래밍/BOJ 2022. 7. 29. 23:29728x90
https://www.acmicpc.net/problem/2581
#include <stdio.h> void is_prime(int m, int n) { int sum = 0, min = 10000; int flag; for (int i = m; i <= n; i++) { flag = 0; if (i == 1) continue; for (int j = 2; j <= i - 1; j++) { if (i % j == 0) { flag = 1; break; } } if (flag == 0) { sum += i; min = (min > i) ? i : min; } //printf("%d %d %d %d \n", i, flag, sum, min); //bug } if (sum == 0) printf("%d", -1); else printf("%d\n%d", sum, min); } int main(void) { int m, n; scanf("%d %d", &m, &n); //m <= n is_prime(m, n); }
소수들의 합을 구하기 위해 sum을 0으로 초기화 해줬다. 이거 귀찮으면 그냥 전역변수로 놓아도 삽가능하다.
그리고 M과 N 사이의 소수들 중 최솟값을 찾아야 하기 때문에 min 변수를 10000(입력될 수 있는 가장 큰 값)으로 초기화 해줬다. 그래야 i랑 비교해서 작으면 min 변수에 i를 넣을 수 있기 때문이다.
만약에 최댓값 구하는 문제라면, 0(입력될 수 있는 가장 작은 값, 1도 가넝, 어차피 비교해서 바꿔줄 것이기 때문)으로 초기화해줄 수 있다.
728x90'C 프로그래밍 > BOJ' 카테고리의 다른 글
[백준 1978] 소수 찾기 (0) 2022.07.31 [백준 9020] 골드바흐의 추측 (0) 2022.07.31 [백준 4948] 베르트랑 공준 (0) 2022.07.29 [백준 1929] 소수 구하기 (0) 2022.07.29 내가 C를 하게 되다니.... (0) 2022.07.29