Sample
JetBrains/e5
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.001 | 0–1; higher is more readable | 72.0Δ 19.5 |
| Scalabrino | 0.759 | 0–1; higher is more readable | 65.3Δ 26.3 |
| Dorn | 0.657 | 0–1; higher is more readable | 78.8Δ 12.7 |
| Mi | 0.516 | 0–1; higher is more readable | 57.6Δ 33.9 |
| LLOC | 9 | Logical lines; fewer is more readable | 79.2Δ 12.3 |
| DeepSeek V4 Pro | 17.33 | 0–20; mean of three runs | 78.8Δ 12.7 |
| GPT-6.1 Sol | 18 | 0–20; mean of three runs | 77.5Δ 14.0 |
| BTTF | 0.476 | 0–1; higher is more readable | 59.3Δ 32.2 |
| Human | 0.95 | 0–1; original rating | 91.5 |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 474.06 | −15.644 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 3.606 | −5.409 |
| Source linesThe number of non-empty source lines. | 13 | +5.2 |
Intercept 8.87 + feature contributions = -6.983 (log-odds).
Score = sigmoid(-6.983) = 0.001.
| Score | 0.759 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names. | 56.923 | +1.254 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 1 | +1.001 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.144 | −0.461 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 13 | −0.287 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 11.655 | −0.247 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 13 | +0.123 |
Intercept 0.07 + feature contributions = 0.648 (log-odds).
Score = sigmoid(0.648) = 0.657.
| Score | 0.516 |
|---|
| Score | 9 |
|---|
Run 1
The code is highly readable. It has a clear logical structure: an outer loop for numbers 1–100 and an inner loop for finding divisors. Nesting is only two levels deep, keeping it flat. The intent is obvious—compute and print divisors. The code is concise, with no unnecessary lines, and each statement is simple and likely one action per line. Reading flow is natural, from setting up the loop to printing results. Minor deductions could be argued for lacking method extraction or explanatory comments, but for a simple task it's effectively self-documenting.
Run 2
The code is highly readable. It has a clear, logical structure: an outer loop from 1 to 100, an inner loop to find divisors, and consistent output formatting. Nesting is minimal—only two levels, which is appropriate. Intent is straightforward: print divisors for each number. The code is concise, with no unnecessary lines. Each action (loop, print, condition) is on its own line, enhancing clarity. The reading flow is natural from problem to solution. Minor deductions: class name could be more descriptive, but this is negligible.
Run 3
The code is well-structured and readable. It has a clear, flat structure with only two nested loops and a simple conditional, making the logic easy to follow. Intent is evident: print divisors of numbers 1 to 100. The code is concise and each line performs a single action. Reading flow is natural, with input-free logic and straightforward printing. Minor deductions: Could use a constant for the upper limit (100) to improve reusability, and the inner loop could be optimized to iterate only up to i/2 (excluding the number itself) for better efficiency, but these do not significantly impact readability. Overall, high readability with slight room for improvement in maintainability.
Run 1
Code Structure: Logically organized around listing each number and its divisors. Nesting: Two loops and one conditional introduce moderate, necessary nesting that remains easy to follow. Clarity of intent: The class name, output text, and modulo check clearly communicate the purpose, though more descriptive variable names could help beginners. Code length: Concise, with no unnecessary code. Action granularity: Each statement performs a single clear action; the loop headers use standard Java conventions. Reading flow: Execution follows a natural sequence from heading to divisor checks to newline. Slightly inconsistent indentation is the main readability weakness.
Run 2
Code Structure: Logically organized, with each number's heading, divisors, and newline grouped together. Nesting: Two loops and one conditional introduce moderate but appropriate nesting. Clarity of intent: The class name, output labels, and modulo check clearly communicate the purpose; more descriptive variable names could improve clarity. Code length: Concise, with no unnecessary statements. Action granularity: Each statement performs a single clear action, and loop controls follow standard conventions. Reading flow: Execution follows a natural sequence, though inconsistent indentation slightly reduces visual readability.
Run 3
Code Structure: Logically organized around iterating through numbers and printing their divisors. Nesting: Two loops and one conditional create moderate, justified nesting that is easy to follow. Clarity of intent: The class name, output label, and modulo check clearly convey the purpose, though more descriptive variable names could help. Code length: Concise, with no unnecessary statements. Action granularity: Each statement performs one clear action; loop headers use conventional Java syntax. Reading flow: Execution progresses naturally from the number label to its divisors and then a newline. Slightly inconsistent indentation and the hard-coded upper limit are minor readability weaknesses.