diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2 (patch) | |
tree | d3bb9f5d25a2dc09ca81adecf39621d871534297 /kbruch/src/primenumber.h | |
download | tdeedu-ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2.tar.gz tdeedu-ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeedu@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kbruch/src/primenumber.h')
-rw-r--r-- | kbruch/src/primenumber.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/kbruch/src/primenumber.h b/kbruch/src/primenumber.h new file mode 100644 index 00000000..8f135b26 --- /dev/null +++ b/kbruch/src/primenumber.h @@ -0,0 +1,83 @@ +/*************************************************************************** + primenumber.h - class primenumber + ------------------- + begin : Tue Nov 27 16:40:42 CET 2001 + copyright : (C) 2001 by Sebastian Stein + email : seb.kde@hpfsc.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#ifndef PRIMZAHL_H +#define PRIMZAHL_H + +#include <qvaluevector.h> + +typedef QValueVector<uint> UnsignedIntArray; + +/** Class to handle prime numbers. + * The prime numbers are stored in a static vector, so that different instances + * can use them. Each time a higher prime number is needed, the new found prime + * number is stored in the vector. To check if a given number is a prime number + * this vector is scanned and if needed new prime numbers are generated. This + * algorithm should reduce calculation time and speed up every program using + * this prime number class. + * \author Sebastian Stein */ +class primenumber +{ +public: + /** constructor */ + primenumber(); + + /** destructor */ + ~primenumber(); + + /** returns wether the given number is a prime number */ + short isPrimeNumber(uint number); + + /** returns the next prime number */ + unsigned int get_next(); + + /** returns the first prime number */ + unsigned int get_first() const; + + /** return the last known prime number */ + unsigned int get_last() const; + + /** returns the current prime number */ + unsigned int get_current() const; + + /** moves the internal pointer to the first prime number */ + void move_first(); + + /** moves the internal pointer to the last prime number */ + void move_last(); + + /** moves the internal pointer to the next prime number */ + void move_forward(); + + /** moves the internal pointer to the previous prime number */ + void move_back(); + + /** Displays all known prime numbers, mainly used for debugging. */ + void display_all(); +private: + /** a vector storing all known prime numbers, access for all objects; + * we are using the vector<T> template; so we do not have to think + * about dynamic mem manipulation */ + static UnsignedIntArray prim_vector; + + /** current selected prime number */ + UnsignedIntArray::iterator current_pos; + + /** finds next prime number and adds it to the vector */ + void find_next(); +}; +#endif |