Write a program that generates all the factors of a number entered by the user.
ID: 1845875 • Letter: W
Question
Write a program that generates all the factors of a number entered by the user. For instance, the number 12 has the factors 2 * 2 * 3. This program has the following requirements:
A. The user must enter a positive integer. If the user enters something else, your program should output an error message and let the user enter a new value. Use a do/while loop to make sure the user input is successful.
B. The factors must be output in increasing order. The lowest factor your program should report is 2.
C. Your program should output 4 factors per line, each factor in a field of 10 characters. (Hint: the number of factors output determines when to output endl!)
D. You will need a while loop to report the factors. Here are some helpful hints:
1. If (a % b == 0) then a is a factor of b.
2. When you have found a factor, output the factor and then reduce the number you are working with by dividing the number by the factor
Explanation / Answer
I hope this is the answer you require.
1. Pseudo Code:
flag=0;
while flag!=1: # till proper input number is encountered
Ask For User input
string s <= input
flag=1
Check if all characters are integers => if not then flag=0
Convert String to number:
"123" to 123 # using ascii values.
#finding factors
while num%2==0:
num/=2
add 2 to list.
for i =3 whie i*i <= n with i=i+2 in each step:
while num%i ==0:
num/=i
add i to list of factors
if num>2:
add num to list of factors
#output
Length of list is number of factors = numf
output 4 factors in a line and then line break.
**************************************************************************************************
2. INPUT: 16
Output: 2 2 2 2
#############################
INPUT: -90
Output: Enter the number correctly
###############################
INPUT:
384
Output:
2 2 2 2
2 2 2 3
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.