>백엔드 개발 >C++ >숫자가 소수인지 확인하는 C 프로그램

숫자가 소수인지 확인하는 C 프로그램

PHPz
PHPz앞으로
2023-08-26 16:49:081399검색

숫자가 소수인지 확인하는 C 프로그램

소수는 두 숫자 자체의 합으로만 나누어질 수 있는 숫자입니다. 숫자의 인수는 숫자를 나누는 숫자입니다.

처음 10개의 소수 목록은 2,3,5,7,11,13,17,23,29,31입니다.

소수가 아닌 숫자는 합성수입니다. 합성수는 두 개 이상의 숫자로 나누어지는 숫자입니다.

소수이자 합성수인 경우 1은 자기 자신으로만 나누어지기 때문에 소수도 합성수도 아닙니다.

숫자가 소수인지 합성인지 확인하는 방법 숫자가 소수인지 확인하려면 두 가지 조건을 확인해야 합니다

1) 1보다 큰 정수여야 합니다.

2) 두 가지 요소, 즉 하나와 숫자 자체만 있어야 합니다.

이 두 가지 조건이 충족되면 숫자가 소수라고 말할 수 있습니다.

저희 프로그램에서는 해당 숫자를 해당 숫자보다 작은 모든 숫자로 나눈 값을 확인합니다. 주어진 숫자보다 작은 숫자가 해당 숫자로 나누어지면 숫자는 소수가 아닙니다. 그렇지 않으면 소수입니다.

두 개의 숫자를 예로 들어 이 절차를 사용하여 두 숫자가 소수인지 확인하겠습니다.

Input − Number1 − 42
Output − 42 is not a prime number

Logic - 1보다 크고 42보다 작은 모든 숫자로 42를 나눕니다. 따라서

42/2 = 21, 즉 42는 2로 나누어집니다. 즉, 42는 다른 수로 나누어지기 때문에 소수가 아닙니다.

Input − Number2 − 7
Output − 7 is a prime number

Logic - 1보다 크고 7보다 작은 모든 숫자로 7을 나눕니다. 따라서

7은 2로 나누어지지 않으므로 코드는 다음 숫자를 확인합니다. 즉, 3

7은 3으로 나누어지지 않으므로 코드는 다음 숫자를 확인합니다. 즉, 4

7은 4로 나누어지지 않으므로 코드는 다음과 같이 됩니다. 다음 숫자, 즉 5

>

7은 5로 나누어지지 않으므로 코드는 다음 숫자, 즉 6

7이 6으로 나누어지지 않는지 확인합니다. 이는 7이 1로만 나누어질 수 있음을 의미하고 7은 7이 소수임을 의미합니다. 숫자 .

위 논리를 보세요. 이 숫자가 1000 더하기인지 100000 더하기인지 확인하세요. 그러면 프로그램은 for 루프에서 여러 번 반복되며 이 방법은 계산 시간이 많이 걸립니다. 따라서 반복 횟수를 줄이기 위해서는 더 나은 방법이 되어야 합니다.

이 문제에 대한 최적화된 솔루션은 루프의 절반만 실행하는 것입니다. 즉, 숫자가 77이면 루프는 38까지만 실행됩니다. 이렇게 하면 필요한 반복 횟수가 줄어들므로 이 알고리즘을 사용하여 프로그램을 만듭니다.

#include <stdio.h>
int main() {
   int num = 33, flag = 0;
   for(int i=2 ; i < num/2 ; i++) {
      if(num%i == 0) {
         printf("%d is not a prime number", num);
         flag = 1;
         break;
      }
   }
   if(flag == 0) {
      printf("%d is a prime number", num);
   }
}

출력

33 is a prime number

위 내용은 숫자가 소수인지 확인하는 C 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제