Skip to content

Instantly share code, notes, and snippets.

@jonathanmarvens
Created December 2, 2013 14:43
Show Gist options
  • Save jonathanmarvens/7750472 to your computer and use it in GitHub Desktop.
Save jonathanmarvens/7750472 to your computer and use it in GitHub Desktop.
#include <math.h>
#include <stdbool.h>
#include <stdio.h>
#define BOOLEAN_FEEDBACK(boolean) ((boolean) ? "yes" : "no")
bool is_prime_clever(unsigned int number);
bool is_prime_naive(unsigned int number);
int main() {
unsigned int non_prime_number = 2048;
unsigned int prime_number = 2147483647;
printf("%d prime [clever]: %s\n", prime_number, BOOLEAN_FEEDBACK(is_prime_clever(prime_number)));
printf("%d prime [naive]: %s\n", prime_number, BOOLEAN_FEEDBACK(is_prime_naive(prime_number)));
printf("%d prime [clever]: %s\n", non_prime_number, BOOLEAN_FEEDBACK(is_prime_clever(non_prime_number)));
printf("%d prime [naive]: %s\n", non_prime_number, BOOLEAN_FEEDBACK(is_prime_naive(non_prime_number)));
return 0;
}
bool is_prime_clever(unsigned int number) {
for (unsigned int a = 2, b = sqrt(number); a < b; a++) {
if ((number % a) == 0) {
return false;
}
}
return true;
}
bool is_prime_naive(unsigned int number) {
for (unsigned int a = 2, b = (number - 1); a < b; a++) {
if ((number % a) == 0) {
return false;
}
}
return true;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment