Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Programming Problem 1 Write a program that generates all the factors of a number

ID: 655183 • Letter: P

Question

Programming Problem 1

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 ado/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


using c++ -


#include <iostream>
using namespace std;
const int FAC_TWO = 2;
int main ()
{
int num, line = 0;
do
{
cout << "Enter a positive interger." << endl;
cin >> num;
}
while (num <= 0);
cout << "The prime factors of ";
cout << num << " ";
cout << "are:" << endl;
while (num % FAC_TWO == 0)
{
cout << FAC_TWO << " ";
num = num/FAC_TWO;
line++;
if (line % 4 == 0)
{
cout << endl;
}
}
for (int i = 3; i <= num; i += 2)
{
while (num % i == 0)
{
cout << i << " ";
num = num/i;
if (line % 4 == 0)
{
cout << endl;
}
}
}
system ("pause>nul");
return 0;
}


Design solution algorithm in pseudocode-

1. Identify the inputs and outputs of the problem.
2.user to enter positive number to be factored and get input.
3. If input is negative, output error message and go back to step 1.
4. Set output counter to 0 and factor to 2.
5. If input is not evenly divisible by factor increment factor.
a. output factor and increment output counter
b. reset input value to input divided by factor
c. if output counter is 4, set output counter to 0 and output a newline
6. If input is greater than 1, go back to step 4.