summaryrefslogtreecommitdiffstats
path: root/mat/euler/10/prog.c
blob: ca82ccc42b97523adc1c77b548b10edf22a81320 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int jePrastevilo(int u) {
	if (u <= 1) // idk trebše je reku da 1 ni praštevilo, pomoje se sicer laže
		return 0; // we fucked up, ne bom delal za negativne številke
	if (u == 2)
		return 1;
	for (int i = 2; i <= ceil(sqrt(u)); i++)
		if (u % i == 0)
			return 0;
	return 1;
}
int main (int argc, char ** argv) {
	if (argc != 1+1) {
		fprintf(stderr, "uporaba: %s <do katerega števila>\nprimer: %s 1000000\n", argv[0], argv[0]);
		return 1;
	}
	int u = atoi(argv[1]);
	unsigned long long int s = 0;
	if (u < 1) {
		fprintf(stderr, "minimalno število je 1!\n");
		return 2;
	}
	while (u > 1) { // js srepo zaupam žoržu, da 1 ni praštevilo.
		if (jePrastevilo(u))
			s = s+u;
		u--;
	}
	fprintf(stdout, "konec. seštevek je %lld.\n", s);
	return 0;
}