소수는 두 숫자 자체의 합으로만 나누어질 수 있는 숫자입니다. 숫자의 인수는 숫자를 나누는 숫자입니다.
처음 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!