fork download
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. int main(void)
  5. {
  6. int m, n; // 시작 수와 끝 수.
  7. int number = 0; //소수의 개수를 저장할 변수를 선언.
  8. scanf("%d", &m);
  9. scanf("%d", &n);
  10. int* prime_num = (int*)malloc(sizeof(int) * (n - m + 1)); // 시작과 끝의 수의 개수만큼 메모리 할당.
  11. for (int i = m, j = 0; i <= n, j < (n - m); i++, j++) // 2변수 for 문.
  12. {
  13. prime_num[j] = i;
  14. }
  15. for (int i = 0; i < (n - m); i++)
  16. {
  17. int count = 0;
  18. for (int j = 1; j <= prime_num[i]; j++)
  19. {
  20. if (prime_num[i] % j == 0)
  21. {
  22. count++;
  23. }
  24. }
  25. if (count == 2)
  26. {
  27. number++;
  28. }
  29. }
  30. if (number == 0)
  31. {
  32. printf("-1");
  33. return 0; // 소수가 없는 경우, -1을 출력하고 프로그램을 종료한다.
  34. }
  35. int* prime = (int*)malloc(sizeof(int) * number); // 소수의 개수만큼 소수들을 저장한다.
  36. int k = 0;
  37. for (int i = 0; i < (n - m); i++)
  38. {
  39. int count = 0;
  40. for (int j = 1; j <= prime_num[i]; j++)
  41. {
  42. if (prime_num[i] % j == 0)
  43. {
  44. count++;
  45. }
  46. }
  47. if (count == 2)
  48. {
  49. prime[k] = prime_num[i]; // 소수인 경우 prime 에 저장한다.
  50. k++;
  51. }
  52. }
  53. int sum = 0; // 소수들의 합을 저장할 변수 선언. 0으로 초기화한다.
  54. for (int i = 0; i < number; i++)
  55. {
  56. sum += prime[i]; // 소수들의 합을 구한다.
  57. }
  58. printf("%d\n", sum);
  59. printf("%d", prime[0]);// 합과 첫 번째 소수를 출력한다.
  60. free(prime_num);
  61. free(prime);
  62. return 0;
  63. }
Success #stdin #stdout 0s 5536KB
stdin
1
2
stdout
-1