Question

I need help thinking up a formula for finding the factors of a number:

Write a method named printFactors that accepts an integer as its parameter and uses a fencepost loop to print the factors of that number, separated by the word " and ". For example, the number 24's factors should print as:

1 and 2 and 3 and 4 and 6 and 8 and 12 and 24

You may assume that the number parameter's value is greater than 0.

Please don't give me a COMPLETE program as I would like to try it out myself.

The current code I have has a for loop to control the number of "and's" appearing, however, I printed out the last number by itself since I don't want a "24 and" attached to it... So the output looks something like this at the moment: "1 and 2 and 3" (I haven't yet thought up the equation hence the 1,2,3...)

I'm currently thinking that the factors requires a % kind of formula right? Will I need division? I was also thinking of printing out 1 and whatever the number (in this case, 24) you are finding factors for, since 1 and the number itself are always factors of itself. What else am I missing??

Thanks in advance!! :)

Was it helpful?

Solution

I'm currently thinking that the factors requires a % kind of formula right?

Yes.

I was also thinking of printing out 1 and whatever the number (in this case, 24) you are finding factors for, since 1 and the number itself are always factors of itself.

If you test every number from 1 to n (e.g. from 1 to 24) then 1 and the number itself don't need to be special cases (because they'll simply satisfy your ordinary "% kind of formula").

Maybe 1 is a special case because it doesn't have the word "and" in front of it.

What else am I missing??

This may be more complicated than you want, but to find all the factors of n you only need to loop up to the square root of n.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top