Challenge (prime numbers): Can you write a program more efficient than mine?
Hi,
I just made a program that takes an integer as input and then prints out all prime numbers less than or equal to this integer. Below is the code.
Are you able to rewrite this code so it becomes more efficient?
Code:
// Prints out all prime numbers between 1 and n, including n.
// A prime number can only be divided by 1 and itself. 1 is not a prime number, lowest is 2.
#include <stdio.h>
int prime(int n) // Investigates if a number is a prime number, returns 1 if true, 0 if false
{
int i, dividable;
dividable = 0;
if(n == 1)
dividable = 1;
for(i = 2; i < n; i++)
{
if(n%i == 0)
dividable = 1;
}
if(dividable == 1)
return 0;
else
return 1;
}
int main(void)
{
int n, true_or_false ,i;
printf("Highest number: ");
scanf("%d", &n);
printf("Prime numbers between 1 and %d:\n", n);
for(i = 1; i <= n; i++)
{
true_or_false = prime(i);
if(true_or_false == 1)
printf("%d\n", i);
else;
}
return 0;
}