Search Problems   RSS Feed

Privacy Policy

For the purposes of this policy we define you to be a member if you have signed in to an account. Until you have signed in you remain a visitor.

Your connection to the website will use a secure SSL connection (HTTPS).

What cookies does the website use?

Project Euler uses PHP sessions, which means that a cookie (name = PHPSESSID) will be stored on your computer. The PHP session is primarily used for members and so it is necessary for cookies to be enabled to be able to sign in. The PHPSESSID cookie will be automatically removed when you close your browser.

In addition, our hosts use a cookie (name = DYNSRV) for load balancing and managing server traffic demand. This cookie will expire when your current browsing session ends.

As a visitor no other cookies will be used.


What cookies do you store for members?

As mentioned above, Project Euler makes use of PHP sessions and the PHPSESSID cookie is used as your unique identifier which keeps members signed in. As long as you remain active on the website your session will remain alive, but after a period of inactivity the session will expire and a new cookie will be generated, requiring you to sign in again. However, it is possible, when signing in, to click "Remember Me". If this box is checked then an additional cookie (name = keep_alive) will be stored on your computer allowing you to be automatically re-authenticated when your session expires. This cookie will remain on your computer until it expires or until you sign out. See About persistent logins... for more information.

As a member you also have the option of sorting the problems table by: problem ID or solved by, and to filter the problems by: all, solved, or unsolved. By default it will sort by ID in ascending order and all problems will be shown. If you change any of these settings, then one or more cookies (name = sort_type; name = sort_method; name = filter_type) will be used to remember your selections. If you revert to the default settings, then the associated cookie will be removed.

Similarly, if you decide to only show active members in the statistics tables, then an additional cookie (name = statistics_show) is used to enable this view from table to table. If you restore the view to all members, then the cookie is deleted.

Although not strictly cookies, whilst you are composing or editing a post in one of the threads, a draft of your post will be saved in your own browser's local storage. This is to allow your post to be recovered in the event of an unexpected page error or accidentally navigating away from the page. If you cancel or successfully publish your post, then the data for that post will be deleted from local storage.

When you sign out, all cookies and local storage related to the Project Euler website will be automatically removed. However the PHPSESSID cookie will remain until you close your browser.


What personal information do you keep in the database?

The primary purpose of creating an account is to keep track of which problems you have solved and, as you continue to solve the problems, which awards you have earned; the date and time that you solve each problem is also stored in the database. All accounts are anonymous and they are accessed by your username and password. We do not require, collect, or store any personal information, including email addresses, IP addresses, or any other data which might be used to identify an individual.

However, on your account page you may choose to select your country, preferred programming language, and enter any additional information about yourself which you wish to be made public. You can also add friends to your profile, set your time zone, and select a colour/style theme.

Please do not enter any information on your account page that you do not wish to share publicly.


How is data stored in the database?

With the exception of passwords and account recovery keys (see below), all data is stored in plain text. Passwords and account recovery keys are strongly encrypted using the native PHP password one-way hashing algorithm.

Although accounts are entirely anonymous and you have not entered any information which you did not wish to share publicly, please be assured that we continue to take every reasonable step to ensure that the data is secure. But as with any website where you create an account, you are strongly advised to use a password that is unique to this website.

If you should become aware of any vulnerability, then the team would be grateful if you took the time to contact us with information; see end of this document for contact details.


If accounts are anonymous, then how can it be recovered if I forget my password?

As we do not keep any verifiable personal data it is not possible to confirm that any particular account belongs to a specific individual. Selecting a location/country, preferred language, or entering additional information you wish to share publicly is optional and could be set by any person wishing to assume the identity of another person. Consequently, we are unable to recover your account if you lose your password.

However, on your account page you are given the option of generating an emergency account recovery key. This is a cryptographically strong randomised key which you should keep in a safe, secure place to be used to recover your account if you should ever forget your password. It is your responsibility to keep the key safe.


Who can see my information?

If your account is set to "Public" status, then your username will appear in the public ranked tables. Through these tables other members will be able to see how many problems you have solved, which awards you have earned, any additional information which you entered about yourself on your account page, and your location/country or preferred programming language if you choose to set them.

The detailed information found on your progress page can only be seen by you, but any friends you have added will be able to see your progress page if your account is "Public".

As outlined above we endeavour to keep the data secure, but as accounts are anonymous, the detailed problem solve history found on your progress page is not personal information. So having the ability to keep that information not visible to all members is a service we provide as a courtesy and without any obligation.


Can I hide my information from the public ranked tables?

During registration you can choose to set your account to "Private" status. However, it is possible to switch between "Public" and "Private" status from your account page at any time. "Private" accounts will not appear in any public ranked tables, including the fastest solvers, and during this time your account profile image will no longer be accessible.

Please be aware that it can take time for caches to update and although we will endeavour to keep the data from re-appearing there are no guarantees. We continue to operate this facility as a courtesy and without obligation.


Who can see my posts?

Any posts made are considered to be public, so any information you share in the post is done by consent and with the understanding that they are visible to others. If you make a post, then your username will appear next to your post. If you have set your location/country or preferred programming language in your profile and your account is "Public", then these will also be visible.

Please note that making your account "Private" will neither hide your public posts nor will it delete previously made posts. However, members can manually delete their own posts at any time by visiting the post and clicking the delete link. There is also an option on your account page to delete all posts you have made.


How is the data processed?

We do not use the data for any purpose other than creating public ranked tables, which can be found in the Statistics section. These tables are visible to all members and include preferred programming languages, countries represented by our members, and the fastest solvers.

Most members take great pride in earning ranked position. To ensure that the public tables fairly and accurately represent genuine achievements, solve times for problems are automatically processed. Any accounts that are "Public" and exhibit unrealistic solve patterns are flagged for review by the team and may be permanently removed from public view (unlisted); accounts that remain "Private" will not be flagged.


Do you share the information in the database with any third parties?

Absolutely not. Even though accounts are anonymous, we do not share any data with third parties. Project Euler remains committed to being an independent website with no links to commercial ventures.


How long will you keep my account?

As accounts are entirely anonymous, we neither have a duty to remove accounts after a fixed expiration date nor do we have any responsibility to keep accounts indefinitely. Currently we have no intention of deleting accounts, but it is quite possible at some point in the future that we may purge accounts with long periods of inactivity. All members have the option of deleting their own accounts at any time. This facility is found at the bottom of the account page, but please be aware that the process is irreversible.


How can I contact you regarding an issue relating to privacy or security?

If you believe you have found a vulnerability or you have any questions regarding the clarity or wording of our privacy policy, then please contact us at privacy@projecteuler.net. This email address may not be used for any other purposes. All other queries must be directed through the alternative forum; you will find the link and further details on the About page.