-
Notifications
You must be signed in to change notification settings - Fork 0
/
utility.cpp
66 lines (55 loc) · 1.25 KB
/
utility.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
#include "utility.h"
QString random_string( size_t length )
{
auto randchar = []() -> char
{
const char charset[] =
"0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";
const size_t max_index = (sizeof(charset) - 1);
return charset[ rand() % max_index ];
};
QString str(length,0);
std::generate_n( str.begin(), length, randchar );
return str;
}
bool isPrime(int number)
{
if(number < 2)
return false;
if(number == 2)
return true;
if(number % 2 == 0)
return false;
for(int i=3; (i*i)<=number; i+=2)
{
if(number % i == 0 )
return false;
}
return true;
}
int getFactor(int number)
{
int result = 0;
int dist = number;
int root = sqrt(number) + 1;
for (int i = 1; i < root; i++)
{
if (number % i == 0)
{
int tempDis = (root - i);
if (tempDis < dist)
result = i;
}
}
return result;
}
bool compareDouble(double a, double b)
{
return std::fabs(a - b) < std::numeric_limits<double>::epsilon();
}
int distance(Coordinate c1, Coordinate c2)
{
return sqrt(pow((c2.rx()-c1.rx()),2) + pow((c2.ry()-c1.ry()),2));
}