C언어
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfCB0e%2FbtqGVwxFm8c%2FK25FHdAGntnx8YsMfwolA0%2Fimg.jpg)
(C언어)백준 2960. 에라토스테네스의 체
문제 에라토스테네스의 체는 N보다 작거나 같은 모든 소수를 찾는 유명한 알고리즘이다. 이 알고리즘은 다음과 같다. 2부터 N까지 모든 정수를 적는다. 아직 지우지 않은 수 중 가장 작은 수를 찾는다. 이것을 P라고 하고, 이 수는 소수이다. P를 지우고, 아직 지우지 않은 P의 배수를 크기 순서대로 지운다. 아직 모든 수를 지우지 않았다면, 다시 2번 단계로 간다. N, K가 주어졌을 때, K번째 지우는 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ K < N, max(2, K) < N ≤ 1000) 출력 첫째 줄에 K번째 지워진 수를 출력한다. #include #include #include int main(void) { int n = 0, k; scanf_s(" %..
(C언어,파이썬)백준 1978. 소수찾기
문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. C언어 #include int main(void) { int n; int num, count = 0; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &num); for (int j = 2; j
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeigNL6%2FbtqE7z28r5m%2FAptDYKdtCt1L2dgrfmCaN0%2Fimg.jpg)
(C언어)프로젝트 오일러(Project Euler)14.백만 이하로 시작하는 우박수 중 가장 긴 과정을 거치는 것은?
양의 정수 n에 대하여, 다음과 같은 계산 과정을 반복하기로 합니다. n → n / 2 (n이 짝수일 때) n → 3 n + 1 (n이 홀수일 때) 13에 대하여 위의 규칙을 적용해보면 아래처럼 10번의 과정을 통해 1이 됩니다. 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1 아직 증명은 되지 않았지만, 이런 과정을 거치면 어떤 수로 시작해도 마지막에는 1로 끝나리라 생각됩니다. (역주: 이것은 콜라츠 추측 Collatz Conjecture이라고 하며, 이런 수들을 우박수 hailstone sequence라 부르기도 합니다) 그러면, 백만(1,000,000) 이하의 수로 시작했을 때 1까지 도달하는데 가장 긴 과정을 거치는 숫자는 얼마입니까?참고: 계산 과정 도중에는 숫자가..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFDVJq%2FbtqEpIlSyb8%2F5ziNBychyFDGKmElYn4bX0%2Fimg.gif)
(C언어)프로젝트 오일러(Project Euler)10. 이백만 이하 소수의 합
문제 10 이하의 소수를 모두 더하면 2 + 3 + 5 + 7 = 17 이 됩니다. 이백만(2,000,000) 이하 소수의 합은 얼마입니까? 코드 #include #include #include #define NUM 2000000 int main(void) { int i, j; int* prime= (int*)malloc(sizeof(int) * NUM); //배열 동적할당 long long sum = 0; for (i = 2; i
(C언어)프로젝트 오일러(Project Euler)9. a + b + c = 1000 이 되는 피타고라스 수
문제 세 자연수 a, b, c 가 피타고라스 정리 a2+b2=c2를 만족하면 피타고라스 수라고 부릅니다 (여기서 a<b<c ). 예를 들면 32+42=9+16=25=52이므로 3, 4, 5는 피타고라스 수입니다. a+b+c=1000 인 피타고라스 수 a, b, c는 한 가지 뿐입니다. 이 때, a×b×c 는 얼마입니까? 코드 #include int main(void) { int i, j, k; for (i = 1; i < 1000; i++) { for (j = 2; j < 1000; j++) { if (i < j) { k = 1000 - i - j; if (i * i + j * j..
(C언어)프로젝트 오일러(Project Euler)8. 1000자리 숫자 안에서 이어지는 5자리 숫자의 곱 중 최대값은?
문제 다음은 연속된 1000자리 숫자입니다 (읽기 좋게 50자리씩 잘라놓음). 73167176531330624919225119674426574742355349194934 96983520312774506326239578318016984801869478851843 85861560789112949495459501737958331952853208805511 12540698747158523863050715693290963295227443043557 66896648950445244523161731856403098711121722383113 62229893423380308135336276614282806444486645238749 303589072962904915604407723907138105158593079608..
(C언어)프로젝트 오일러(Project Euler)7. 10001번째의 소수
문제 소수를 크기 순으로 나열하면 2, 3, 5, 7, 11, 13, ... 과 같이 됩니다. 이 때 10,001번째의 소수를 구하세요 코드 #include int main(void) { int i, j; int count = 0; for (i = 1; i; i++) { for (j = 2; j < i; j++) { if (i % j == 0) break; } if (i == j) count++; if (count == 10001) { printf("%d\n", i); break; } } return 0; } 판별할 수의 반까지만 본다거나 에라토스테네스의 체를 활용하여 소수를 구하기도 하던데, 그냥 기본적인 방법을 사용했다. 10001번째가 될 소수가 얼마나 클 지 몰라 i를 무한히 증가시켰다. 소수는 ..
(C언어)프로젝트 오일러(Project Euler) 5. 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수
문제 1 ~ 10 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 2520입니다. 그러면 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 얼마입니까? 코드 #include int main(void) { int x = 21, res = 0; while (1) { if (x % 2 == 0 && x % 3 == 0 && x % 4 == 0 && x % 5 == 0 && x % 6 == 0 && x % 7 == 0 && x % 8 == 0 && x % 9 == 0 && x % 10 == 0 && x % 11 == 0 && x % 12 == 0 && x % 13 == 0 && x % 14 == 0 && x % 15 == 0 && x % 16 == 0 && x % 17 == 0 && x % 1..