-
Notifications
You must be signed in to change notification settings - Fork 98
/
Primeadam.cpp
123 lines (105 loc) · 2.09 KB
/
Primeadam.cpp
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// C++ program to find all prime
// adam numbers in the given range
#include <bits/stdc++.h>
using namespace std;
int reverse(int a)
{
int rev = 0;
while (a != 0)
{
int r = a % 10;
// Reversing a number by taking
// remainder at a time
rev = rev * 10 + r;
a = a / 10;
}
return (rev);
}
// Function to check if a number
// is a prime or not
int prime(int a)
{
int k = 0;
// Iterating till the number
for(int i = 2; i < a; i++)
{
// Checking for factors
if (a % i == 0)
{
k = 1;
break;
}
}
// Returning 1 if the there are
// no factors of the number other
// than 1 or itself
if (k == 1)
{
return (0);
}
else
{
return (1);
}
}
// Function to check whether a number
// is an adam number or not
int adam(int a)
{
// Reversing given number
int r1 = reverse(a);
// Squaring given number
int s1 = a * a;
// Squaring reversed number
int s2 = r1 * r1;
// Reversing the square of the
// reversed number
int r2 = reverse(s2);
// Checking if the square of the
// number and the square of its
// reverse are equal or not
if (s1 == r2)
{
return (1);
}
else
{
return (0);
}
}
// Function to find all the prime
// adam numbers in the given range
void find(int m, int n)
{
// If the first number is greater
// than the second number,
// print invalid
if (m > n)
{
cout << " INVALID INPUT " << endl;
}
else
{
int c = 0;
// Iterating through all the
// numbers in the given range
for(int i = m; i <= n; i++)
{
// Checking for prime number
int l = prime(i);
// Checking for Adam number
int k = adam(i);
if ((l == 1) && (k == 1))
{
cout << i << "\t";
}
}
}
}
// Driver code
int main()
{
int L = 5, R = 100;
find(L, R);
return 0;
}