Skip to content

Commit 066a068

Browse files
committed
feat: ✨ add imperative solutions
1 parent b044903 commit 066a068

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#include <stdio.h>
2+
#include <assert.h>
3+
4+
int is_prime(long long num) {
5+
if (num <= 1) return 0;
6+
for (long long i = 2; i * i <= num; i++) {
7+
if (num % i == 0) return 0;
8+
}
9+
return 1;
10+
}
11+
12+
long long largest_prime_factor(long long num) {
13+
long long i;
14+
for (i = 2; i * i <= num; i++) {
15+
if (num % i == 0 && is_prime(i)) {
16+
num /= i;
17+
i--;
18+
}
19+
}
20+
return num;
21+
}
22+
23+
int main() {
24+
long long num = 600851475143;
25+
long long largest_factor = largest_prime_factor(num);
26+
27+
printf("The largest prime factor of %lld is %lld\n", num, largest_factor);
28+
assert(largest_factor == 6857);
29+
30+
return 0;
31+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#include <stdio.h>
2+
#include <assert.h>
3+
4+
int main() {
5+
int size = 1001;
6+
int sum = 1;
7+
int num = 1;
8+
int increment = 2;
9+
10+
for (int i = 3; i <= size; i += 2) {
11+
for (int j = 0; j < 4; j++) {
12+
num += increment;
13+
sum += num;
14+
}
15+
increment += 2;
16+
}
17+
18+
printf("The sum of the numbers on the diagonals is %d\n", sum);
19+
assert(sum == 669171001);
20+
21+
return 0;
22+
}

0 commit comments

Comments
 (0)