Add new exercises. 09-12
This commit is contained in:
parent
a263ec034a
commit
40e49bc2d4
37
semester3/exercises/exercise2.13.c
Normal file
37
semester3/exercises/exercise2.13.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
|
||||
void printTime(clock_t end, clock_t start) {
|
||||
printf("Took %lf to calculate.\n", ((double)(end - start)) / CLOCKS_PER_SEC);
|
||||
}
|
||||
|
||||
void calculate(long long N) {
|
||||
clock_t end, start;
|
||||
|
||||
start = clock();
|
||||
|
||||
for (int i = 1, root = (int)floor(sqrt((double)N)); i < root; i++) {
|
||||
if (N % i == 0) {
|
||||
end = clock();
|
||||
printTime(end, start);
|
||||
printf("%lld is not prime\n", N);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
end = clock();
|
||||
printTime(end, start);
|
||||
printf("%lld is prime\n", N);
|
||||
return;
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
long long test[] = {1048575, 1099511627775};
|
||||
for (int i = 0; i < 2; i++) {
|
||||
calculate(test[i]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
116
semester3/exercises/exercise2.6.c
Normal file
116
semester3/exercises/exercise2.6.c
Normal file
|
@ -0,0 +1,116 @@
|
|||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
|
||||
int counter = 0;
|
||||
|
||||
void getTime(int N, clock_t start_t, time_t end_t) {
|
||||
double runningTime;
|
||||
runningTime = ((double) (end_t - start_t)) / CLOCKS_PER_SEC;
|
||||
|
||||
printf("%d: Took %lf sec\n", counter++, runningTime);
|
||||
}
|
||||
|
||||
void test(int N) {
|
||||
clock_t start_t;
|
||||
clock_t end_t;
|
||||
int sum;
|
||||
|
||||
// 1
|
||||
sum = 0;
|
||||
|
||||
start_t = clock();
|
||||
|
||||
for (int i = 0; i < N; i++) {
|
||||
sum++;
|
||||
}
|
||||
|
||||
end_t = clock();
|
||||
|
||||
getTime(N, start_t, end_t);
|
||||
|
||||
// 2
|
||||
start_t = clock();
|
||||
sum = 0;
|
||||
|
||||
for (int i = 0; i < N; i++) {
|
||||
for (int j = 0; j < N; j++) {
|
||||
sum++;
|
||||
}
|
||||
}
|
||||
|
||||
end_t = clock();
|
||||
|
||||
getTime(N, start_t, end_t);
|
||||
|
||||
// 3
|
||||
start_t = clock();
|
||||
sum = 0;
|
||||
|
||||
for (int i = 0; i < N; i++) {
|
||||
for (int j = 0; j < N * N; j++) {
|
||||
sum++;
|
||||
}
|
||||
}
|
||||
|
||||
end_t = clock();
|
||||
getTime(N, start_t, end_t);
|
||||
|
||||
// 4
|
||||
start_t = clock();
|
||||
|
||||
sum = 0;
|
||||
|
||||
for (int i = 0; i < N; i++) {
|
||||
for (int j = 0; j < i; j++) {
|
||||
sum++;
|
||||
}
|
||||
}
|
||||
|
||||
end_t = clock();
|
||||
getTime(N, start_t, end_t);
|
||||
|
||||
// 5
|
||||
start_t = clock();
|
||||
|
||||
sum = 0;
|
||||
|
||||
for (int i = 0; i < N; i++) {
|
||||
for (int j = 0; j < i * i; j++) {
|
||||
for (int k = 0; k < j; k++) {
|
||||
sum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end_t = clock();
|
||||
getTime(N, start_t, end_t);
|
||||
|
||||
// 6
|
||||
start_t = clock();
|
||||
|
||||
sum = 0;
|
||||
|
||||
for (int i = 1; i < N; i++) {
|
||||
for (int j = 1; j < i * i; j++) {
|
||||
if (j % i == 0) {
|
||||
for (int k = 0; k < j; k++) {
|
||||
sum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
end_t = clock();
|
||||
getTime(N, start_t, end_t);
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
int times[] = {5, 10, 100, 250};
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
counter = 0;
|
||||
printf("N = %d\n\n", times[i]);
|
||||
test(times[i]);
|
||||
printf("\n");
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue