feat: add prime

This commit is contained in:
dancingCycle 2023-01-19 08:30:50 +01:00
parent 9c5776b620
commit 68d3c97905
7 changed files with 67 additions and 0 deletions

24
prime/go.c Normal file
View File

@ -0,0 +1,24 @@
/* go.c
Takes one input argument from the command line, an integer,
and returns 1 if the number is prime, and 0 if it is not.
Compile with: gcc -o go go.c primes.c
*/
#include <stdio.h>
#include <stdlib.h>
#include "primes.h"
int main(int argc, char *argv[]) {
if (argc < 2) {
printf("error: must provide a single integer value to test\n");
return 1;
}
else {
int n = atoi(argv[1]);
int prime = isPrime(n);
printf("isPrime(%d) = %d\n", n, prime);
return 0;
}
}

14
prime/makefile Normal file
View File

@ -0,0 +1,14 @@
RM = /bin/rm -f
CC = gcc
CFLAGS = -Wall
DEPS = primes.h
OBJ = go.o primes.o
#%.o recipe with dependencies
%.o: %.c $(DEPS)
$(CC) $(CFLAGS) -c -o $@ $<
#go recipe with dependencies
go: $(OBJ)
gcc $(CFLAGS) -o $@ $^
#
clean:
$(RM) $(OBJ) go *~

4
prime/makefile1 Normal file
View File

@ -0,0 +1,4 @@
# go: recipe with dependencies
go: go.c primes.c
gcc -o go go.c primes.c

16
prime/primes.c Normal file
View File

@ -0,0 +1,16 @@
int isPrime(int n) {
// returns 0 if not prime, 1 if prime
if (n<2) return 0; // first prime number is 2
if (n==2) return 1; // ensure 2 is identified as a prime
if ((n % 2)==0) return 0; // all even numbers above 2 are not prime
int i;
for (i=3; i*i < n; i++) { // test divisibility up to sqrt(n)
if ((n % i) == 0) {
return 0;
}
}
return 1;
}

7
prime/primes.h Normal file
View File

@ -0,0 +1,7 @@
/*We can use CPP tricks to avoid parsing the same header file more than once*/
#ifndef PQ_CON_INFO_H
# define PQ_CON_INFO_H
int isPrime(int n); // returns 0 if n is not prime, 1 if n is prime
#endif /* PQ_CON_INFO_H */

1
prime/readme.md Normal file
View File

@ -0,0 +1 @@
[source](https://gribblelab.org/teaching/CBootCamp/12_Compiling_linking_Makefile_header_files.html)

View File

@ -13,6 +13,7 @@ int main()
char * secret = "secret";
char * host = "localhost";
char * db = "vbn_data";
/*TODO How is const defined?*/
const int pqConInfoSize = 100;
char pqConInfo[pqConInfoSize];