Skip to content

Commit 071ec53

Browse files
committed
Added factorization, modular exponentiation, and sieve of eratosthenes
1 parent 9f707c7 commit 071ec53

File tree

3 files changed

+96
-0
lines changed

3 files changed

+96
-0
lines changed
+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
4+
void printFactors(int n)
5+
{
6+
for (int i=1; i * i<=n; i++)
7+
{
8+
if (n%i == 0)
9+
{
10+
if (n/i == i)
11+
cout << i << " ";
12+
13+
else
14+
cout << i << " " << n/i << " ";
15+
}
16+
}
17+
cout << "\n";
18+
}
19+
20+
void printPrimeFactors(int n)
21+
{
22+
set<int> f;
23+
for (int i = 2; i*i <= n; i++)
24+
{
25+
while (n % i == 0)
26+
{
27+
f.insert(i);
28+
n /= i;
29+
}
30+
}
31+
for (auto &i : f)
32+
{
33+
cout << i << " ";
34+
}
35+
cout << "\n";
36+
}
37+
38+
int main()
39+
{
40+
printFactors(100);
41+
printPrimeFactors(100);
42+
return 0;
43+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
4+
// To calculate (x^n) % m
5+
6+
int modpow(int x, int n, int m)
7+
{
8+
if (n == 0) return 1 % m;
9+
long long u = modpow(x, n / 2, m);
10+
u = (u * u) % m;
11+
if (n % 2 == 1)
12+
u = (u * x) % m;
13+
return u;
14+
}
15+
16+
int main()
17+
{
18+
cout << modpow(10, 50, 3) << "\n";
19+
return 0;
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
4+
void SieveOfEatosthenes(int n)
5+
{
6+
7+
bool prime[n+1];
8+
memset(prime, true, sizeof(prime));
9+
10+
for (int p = 2; p * p <= n; p++)
11+
{
12+
if (prime[p])
13+
{
14+
for (int i = p * p; i <= n; i += p)
15+
prime[i] = false;
16+
}
17+
}
18+
19+
// Print all prime numbers
20+
for (int p = 2; p <= n; p++)
21+
{
22+
if (prime[p])
23+
cout << p << " ";
24+
}
25+
cout << "\n";
26+
}
27+
28+
int main()
29+
{
30+
int n = 30;
31+
SieveOfEatosthenes(n);
32+
return 0;
33+
}

0 commit comments

Comments
 (0)