https://cs50.harvard.edu/x/2023/problems/1/prime/
Prime - CS50x 2023
Harvard University's introduction to the intellectual enterprises of computer science and the art of programming.
cs50.harvard.edu
제출한 답안
#include <cs50.h>
#include <stdio.h>
bool prime(int number);
int main(void)
{
int min;
do
{
min = get_int("Minimum: ");
}
while (min < 1);
int max;
do
{
max = get_int("Maximum: ");
}
while (min >= max);
for (int i = min; i <= max; i++)
{
if (prime(i))
{
printf("%i\n", i);
}
}
}
bool prime(int number)
{
int count = 0;
for (int i = 2; i <= number; i++)
{
if(number % i == 0) count++;
}
if (count == 1) return number;
else return false;
}
소수를 찾는 조건을 설정하는게 쉽지 않았다.
카운터를 0으로 맞춰두고
number에 2~number와 같은값까지 한번씩 계속 나눠보면서,
남은 값이 0이 되면 카운터가 하나 올라간다.
소수는 1과 자신으로만 나눠지는 수 이므로,
1부터 시작해서 하고, if count == 2 로 해도 동일하게 작동한다.