66 lines
1.8 KiB
Markdown
66 lines
1.8 KiB
Markdown
# Exercises
|
|
|
|
Here let be listed exercises for the readers of the wiki. You can allow yourself to as many helpers and resources as you find challenging: with each problem you should either find out you know the solution or learn something new while solving it.
|
|
|
|
Problems in each category should follow from easiest to most difficult. The listed solutions may not be the only possible solutions, just one of them.
|
|
|
|
## General Knowledge
|
|
|
|
1. What is the difference between [free software](free_software.md) and [open source](open_source.md)?
|
|
|
|
### Solutions
|
|
|
|
1. The [free software](free_software.md) and [open source](open_source.md) movements are technically very similar but extremely different in spirit, i.e. while most free software licenses are also open source and vice versa (with small exceptions such as [CC0](cc0.md)), free software is fundamentally about pursuing user freedom and ethics while open source is a later capitalist fork of free software that removes talk about ethics, aims to exploit free licenses for the benefit of business and is therefore unethical.
|
|
|
|
## Programming
|
|
|
|
1. Write a [C](c.md) program that prints out all [prime numbers](prime.md) under 1000 as well as the total count of these prime numbers.
|
|
|
|
### Solutions
|
|
|
|
1:
|
|
|
|
```
|
|
// Sieve of Eratosthenes algorithm, one possible way to generate prime numbers
|
|
#include <stdio.h>
|
|
#define N 1000
|
|
|
|
char primeMap[N];
|
|
|
|
int main(void)
|
|
{
|
|
int primeCount = 0;
|
|
|
|
for (int i = 0; i < N; ++i)
|
|
primeMap[i] = 1;
|
|
|
|
for (int i = 2; i < N; ++i)
|
|
{
|
|
if (primeMap[i])
|
|
{
|
|
primeCount++;
|
|
printf("%d\n",i);
|
|
}
|
|
|
|
int j = i;
|
|
|
|
while (1) // mark all multiples of i non-primes
|
|
{
|
|
j += i;
|
|
|
|
if (j >= N)
|
|
break;
|
|
|
|
primeMap[j] = 0; // can't be a prime
|
|
}
|
|
}
|
|
|
|
printf("prime count under %d: %d\n",N,primeCount);
|
|
|
|
return 0;
|
|
}
|
|
```
|
|
|
|
## Math
|
|
|
|
### Solutions |