AP CSA 2.8 FRQ Practice: Accumulator Identities

Unit 2: Selection and Iteration · Lesson 2.8 · FRQ Practice

Accumulator Identities

A free response question in the shape the exam uses: a stated contract, four rubric parts, and no main method handed to you. Worth 4 points.

Why this question is worth four points

Every accumulator starts at its identity: 0 for a sum, 1 for a product, and the FIRST value for a maximum. Starting a maximum at 0 is the most common accumulator bug on the exam, and it is invisible until every value happens to be negative.

What you are given

Nothing is given. Write a class named Totals containing exactly the four static methods described below. Assume count is at least 1. Do not write a main method.

The question

  1. (a) public static int sumRange(int low, int high) returns the sum of every integer from low to high inclusive, and 0 when low is greater than high.
  2. (b) public static int product(int n) returns 1 times 2 times ... times n, and 1 when n is less than 1.
  3. (c) public static int largestMultiple(int limit, int step) returns the largest multiple of step that is at most limit. Assume step is at least 1 and limit is at least 0.
  4. (d) public static int countDivisors(int n) returns how many integers from 1 to n divide n evenly. Assume n is at least 1.

What the reader is looking for

  1. Write class Totals with the four static methods exactly as described. No main method.
  2. Part (b) starts its accumulator at 1, not 0. A product that starts at 0 stays 0 forever.
  3. Every loop here counts up to a known bound, which is what a for loop is for.

Worked examples

These show what a correct answer prints. There are more cases you cannot see, and they use different values, so an answer built around just these numbers will fail.

Example 1 input
1 5 4 20 6 12
Example 1 output
15
24
18
6
Example 2 input
3 3 5 17 3 7
Example 2 output
3
120
15
2

Your answer

Main.java

Input for the Run button

How this is scored: your answer runs against every test case, and the fraction it passes becomes your score out of 4. That is not how a human AP reader marks a rubric, so treat the score as a check on whether your code works, and the rubric above as the thing you are actually practising.


  

  

Stuck?

Hint 1

A sum starts at 0 and a product starts at 1. Those are the values that leave the answer unchanged when nothing is combined into them, which is why they are called identities.

Hint 2

Part (a) returns 0 for an empty range without a special case, because a for loop whose condition is false at the start never runs.

Hint 3

Part (c) needs no loop at all. Integer division already truncates to a whole number of steps, so limit / step * step is the answer.

Before you submit

4 mistake(s) that lose points on this question

Each of these is a real error the grader catches. Check your answer against them before you submit, not instead of trying.

  • part (b) starts its product accumulator at 0, so every answer is 0
  • part (a) stops one short of high
  • part (d) skips 1 as a divisor
  • part (c) rounds up to the next multiple instead of down

Where to go next

Get in Touch

Whether you're a student, parent, or teacher — I'd love to hear from you.

Just want free AP CS resources?

Enter your email below and check the subscribe box — no message needed. Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.

Typically responds within 24 hours

Message Sent!

Thanks for reaching out. I'll get back to you within 24 hours.

🏫 Welcome, fellow educator!

I offer curriculum resources, practice materials, and study guides designed for AP CS teachers. Let me know what you're looking for — whether it's classroom materials, a guest speaker, or Teachers Pay Teachers resources.

Email

[email protected]

📚

Courses

AP CSA, CSP, & Cybersecurity

Response Time

Within 24 hours

Prefer email? Reach me directly at [email protected]