Why waste time looking locally when itâ€™s easier to find the right tutor online?

Tutoring is easier and more flexible when you remove the need to plan around travel

With live online one-to-one sessions you’re always engaged

Your live sessions are recorded, so you can play tutorials back if you want to revise

To answer this question you must first fully understand what prime factors are. Any positive integer number can be 'split' down into a product of its prime factors, that is, the number can only be made by multiplying a collection of primes together. For example, 42 = 2*3*7, therefore the set of prime factors of 42 are [2, 3, 7]

Okay, now that that is sorted we can begin to answer the question.

**Note**: This question requires the use of conditional statements (if, else if, and else) and while loops. If you are struggling with these concepts please get in touch, I would be glad to help.

I used several functions in my answer to this question, those are '**isPrime(number)**' and then the main '**primeFactorization(number)**' function.

**'isPrime(number)**' returns a boolean 'True' if the inputted number is prime, and 'False' otherwise.

** Note**: the implementation of 'isPrime()' is a whole other question in itself, I will try to upload a question/answer shortly.

The overview of the **primeFactorization(number)** method is as follows:

** Note**: if a number is prime, then its only prime factor is itself

** Note**: This problem requires the knowledge of modulo division. The result of A mod B will be the remainder if A were to be evenly devised by B. For example,

To start, we need a variable to hold a copy of the number that we are trying to factorise, note that this is not the original input number, just a copy, so we are okay to edit it as the calculation progresses, I called mine **factorMe**

We also need an empty container to store the factors as we find them, I used a simple list called '**factors**'

We also need a variable to keep track of the prime that we are currently using, this should be equal to **2** to begin with, and we will change it as the while loop progresses. I called this variable '**factorizingPrime**'

Finally we need a boolean value that tells us whether or not our number has been completely factorised, and hence when we can break out of the while loop. I called this variable '**factored**', and it is set to **False** to begin

**primeFactorization(number)**

**factorMe **= **number**

**factorizingPrime **= 2

**factors **= [ ]

**factored **= False

**while** ( not **factored** ) {

**if** **factorMe** **isPrime**() (ie It is its own only prime factor)

add **factorMe** to the list of **factors**, we are all done!

break the while loop here (set **factored** to **True**)

**else, if** **factorMe** mod **factorizingPrime** == 0 (see above note)

update **factorMe =** **factorMe / factorizingPrime**

add **factorizingPrime** to the list of **factors**

** else**

the current **factorisingPrime** does not evenly divide

the **factorMe** variable, so is not a prime factor,

update the **factorisingPrime** with the **nextPrime()**

and the while loop will continue to run

}

**Nearly there! **

When that while loop exits, stored in the list **factored** will be all of the prime factors of the number you inputted!

Now it is as simple as finding the largest element in the list, and you've answered Project Euler Question 3, **congratulations**!

Project Euler is a great free bank of complex programming problems, and I would strongly recommend you have a look.

If you want to talk about this solution, or have any other questions, do not hesitate to get in touch.

Happy coding,

Tom

Answered by Tom E.

Studies Computer Science at Bristol

A data structure is a way of describing a certain way to organize peices of data so that operations and alogrithms can be more easily applied. For example tree type datastructures often allow for efficient searching algorithms.

A data type describes peices of data that all share a common property. For example an integer data type describes every integer that the computer can handle. Often when refering to data types in practice you will be referencing primitive data types which are the most basic data types of a programming language for example int, string or array. However in some languages like C you can define your own data types for example a data type of `person` could contain a string labled `name` and an integer called `age` which could be used to store the information for any person with an age and a name.

__Answer:__ 00110111

__Thinking:__ Two possible ways of answering this question expected for A Level and even at GCSE, let's start with the most common.

*- Method one* - consider the column headers for binary numbers.

The question says we need **8** bits, so the column headers are: 128, 64, 32, 16, 6, 4, 2, 1. (Remember, you must start at one, right to left, and double at each increment, following the pattern of powers of two - post a question if you're struggling to do this)

Now, going right to left, fill in a one underneath each header if it can be used to make up the target number, **55**. So, going left to right, 128 is too big, write a zero, 64 is too big, 32 is appropriate, so write a one, 16 is appropriate, and so on.

At the end, ensure the numbers add to the target. Here, 32+16+4+2+1 = 55.

*- Method two* - use remainder division.

We will continually divide the number **55** by two, until we reach a result of zero. At each step, note the result of the division and the remainder, remember we're only using whole numbers here.

55/2 = 27 remainder 1

27/2 = 13 remainder 1

13/2 = 6 remainder 1

6/2 = 3 remainder 0

3/2 = 1 remainder 1

1/2 = 0 remainder 1, we have reached zero, so stop here.

Now, read back the remainders, bottom to top to give 110111. Remember the question asks for **8** bit signed binary, so add in two zeros on the left side, to make the number fit the requirement, giving our answer of 00110111.

- *Note: *the question asks for

Answered by Joseph C.

Studies Computer Science at Southampton

Batch processing is when a series of jobs are exectued without any human interfering. This means that in batch processing, all necessary information is collected first and given to the processor as the inputs, and then the computer processes this information without any user involved until the results are produced.

This can be very useful when trying to optimise our use of the computers, because there are tasks that take a long time and don't need human intervention, such as getting the computer to produce the monthly payrolls for a company, and these tasks can be done in batch by the computers overnight, when nobody needs the computing resources, leaving the resources available during the day for the workers.

Answered by Santiago G.

Studies Computer Science with Management at Edinburgh

182

Answered by George B.

Studies Computer Science at Newcastle

Latency is the time delay between something being initiated and the moment it's first effect begins

Answered by George B.

Studies Computer Science at Newcastle

Company information

Popular requests

Other subjects

Cookies:

Are you there? â€“ We have noticed a period of inactivity, click yes to stay logged in or you will be logged out in 2 minutes

Your session has timed out after a period of inactivity.

Please click the link below to continue (you will probably have to log in again)

Every tutor on our site is from a **top UK university** and has been** personally interviewed** and ID checked. With over 7 applications for each tutor place, you can rest assured you’re getting the best.

As well as offering **free tutor meetings**, we **guarantee every tutor who has yet to be reviewed on this site,** no matter how much prior experience they have. Please let us know within 48 hours if you’re not completely satisfied and we’ll **refund you in full.**

Every time a student and parent lets us know they have enjoyed a tutorial with a tutor, one 'happy student' is added to the tutor's profile.

mtw:mercury1:status:ok

Version: | 3.23.0 |

Build: | 43d14a3411c3 |

Time: | 2016-10-14T11:23:54Z |

Your message has been sent and you'll receive an email to let you know when responds.

Tutors typically reply within 24 hours.

Tutors typically reply within 24 hours.

Thanks , your message has been sent and we’ll drop you an email when replies. You should hear back within 24 hours.

After that, we recommend you set up a free, 15 minute meeting. They’re a great way to make sure the tutor you’ve chosen is right for you.

Thanks , your message has been sent and we’ll drop you an email when replies. You should hear back within 24 hours.

After that, we recommend you set up a free, 15 minute meeting. They’re a great way to make sure the tutor you’ve chosen is right for you.

**Limit reached ***(don't worry though, your email has still been sent)*

Now you've sent a few messages, we'd like to **give the tutors a chance to respond**.

Our team has been notified that you're waiting, but please contact us via

support@mytutor.co.uk or **drop us a call on +44 (0)203 773 6020** if you're in a rush.

**Office hours are 8am to 7pm**, Monday to Friday, and we pick up emails on weekends.

Thanks,

The MyTutor team

**Limit reached ***(don't worry though, your email has still been sent)*

Now you've sent a few messages, we'd like to **give the tutors a chance to respond**.

Our team has been notified that you're waiting, but please contact us via

support@mytutor.co.uk or **drop us a call on +44 (0)203 773 6020** if you're in a rush.

**Office hours are 8am to 7pm**, Monday to Friday, and we pick up emails on weekends.

Thanks,

The MyTutor team

**Limit exceeded ***(Your message will not be sent)*

You should have recieved a notification with your previous message, and **our team have also been notified that you're waiting.**

If you're in a rush, please contact us via support@mytutor.co.uk or **drop us a call on +44 (0)203 773 6020** .

**Office hours are 8am to 7pm**, Monday to Friday. We also pick up emails on weekends.

Thanks,

The MyTutor team

**Limit exceeded ***(Your message will not be sent)*

You should have recieved a notification with your previous message, and **our team have also been notified that you're waiting.**

If you're in a rush, please contact us via support@mytutor.co.uk or **drop us a call on +44 (0)203 773 6020** .

**Office hours are 8am to 7pm**, Monday to Friday. We also pick up emails on weekends.

Thanks,

The MyTutor team