Sample

JetBrains/e57

Human rating uses the original dataset scale.

DatasetJetBrains
Human0.07
Lines23

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
26.3Δ 26.3
Scalabrino0.5780–1; higher is more readable
40.7Δ 40.7
Dorn0.4880–1; higher is more readable
39.8Δ 39.8
Mi0.6830–1; higher is more readable
94.9Δ 94.9
LLOC18Logical lines; fewer is more readable
29.7Δ 29.7
DeepSeek V4 Pro6.330–20; mean of three runs
1.7Δ 1.7
GPT-6.1 Sol100–20; mean of three runs
0.8Δ 0.8
BTTF0.2590–1; higher is more readable
5.9Δ 5.9
Human0.070–1; original rating
0.0

Views

Source code

public class LuckyNumbers { public static void main(String[] args) { int[] a = new int[1000]; for(int i = 0; i < a.length; i++) { a[i] = 2*i + 1; } for(int k = 2; k <= a.length; k++) { for(int i = k-1; i < a.length; i += k-1) { a[i] = 0; } } int count = 0; for(int i = 0; i < a.length; i++) { if(a[i] != 0) { System.out.print(a[i] + " "); count++; if(count == 1000) { break; } } } } }

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(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.906.266−29.907
Source linesThe number of non-empty source lines.23+9.2
Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value.4.157−6.236

Intercept 8.87 + feature contributions = -18.073 (log-odds).
Score = sigmoid(-18.073) = 0.

Score0.578

Feature contributions

FeatureValueContribution
(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.46.826+1.682
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.208−1.083
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
Indentation frequencyHow rapidly indentation changes from line to line.1−0.703
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.23−0.107
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.21.854−0.104

Intercept 0.07 + feature contributions = -0.049 (log-odds).
Score = sigmoid(-0.049) = 0.488.

Score0.683
Score18
Run 1

The code has severe readability issues. There is no meaningful indentation, making it difficult to distinguish code blocks and understand the structure. The class and main method are properly defined but the body of the loops and conditional statements are not visually separated. Variable names like 'a', 'i', 'k', and 'count' are ambiguous and do not convey intent, making the algorithm hard to understand. The logic appears to implement a lucky number sieve, but this is not documented. There are multiple actions jumbled together on each line, and the reading flow is unnatural. The code is short but not concise in a helpful way, as it sacrifices clarity for brevity. Nesting is shallow, but poor indentation negates this advantage. Overall, it requires considerable effort to parse and understand.

Run 2

The code is compact but lacks readability due to poor structure, unclear intent, and minimal separation of logic. Variable names like 'a' and 'k' are ambiguous, and the use of magic numbers (1000, 2, 1) obscures purpose. Nesting is shallow, but the second loop performs an action (setting array elements to zero) with unclear motivation. The action granularity is adequate, but the reading flow is disrupted by lack of comments or meaningful naming. Code length is not excessive, but the logic is opaque—likely an implementation of lucky numbers, but this is not evident without domain knowledge. Overall, the code is functional but difficult to maintain or understand without deeper analysis.

Run 3

The code is short and mostly one action per line, but its intent is highly ambiguous. Variable names like 'a' and 'k' do not convey meaning, and the logic for zeroing elements is opaque without external context. The class name 'LuckyNumbers' hints at the algorithm, but the code itself lacks comments or helper methods to clarify the sieve-like process. Nesting is flat, which is good, but the structure is procedural and not organized into logical functions. The second loop appears to nullify the work of the first in a non-obvious manner, making the flow hard to follow. Overall, the code requires significant external explanation to understand its purpose, reducing readability despite its brevity.

Run 1

Code Structure: Initialization, elimination, and output form logical phases, but uniform indentation obscures block boundaries. Nesting: The nested loops are moderate; the output loop adds two conditional levels that make it harder to scan. Clarity of intent: The class name suggests lucky-number generation, but generic names such as a and k, unexplained index arithmetic, and zero-as-marker logic obscure the algorithm. Code length: The code is short, though the count check and break are redundant because the array contains only 1000 elements. Action granularity: Each statement performs one action, with conventional loop headers. Reading flow: Execution follows a natural sequential progression, but inconsistent spacing, absent comments, and poor indentation hinder readability.

Run 2

Code Structure: Initialization, elimination, and output occur in logical sequence, but all logic is contained in main and uniform indentation obscures block boundaries. Nesting: Moderate nesting, reaching a loop with two nested conditionals, makes the output section harder to scan. Clarity of intent: The class name suggests lucky-number generation, but terse variables, unexplained elimination rules, and zero-as-marker usage leave the algorithm unclear. Code length: Compact overall, though the count limit and break appear unnecessary given the array size and elimination of elements. Action granularity: Statements generally perform one action per line; conventional loop headers are easy to recognize. Reading flow: Execution proceeds naturally, but absent blank lines, inconsistent spacing, and poor indentation make transitions and scope difficult to follow.

Run 3

Code Structure: Initialization, elimination, and output appear in a logical sequence, but everything resides in main and uniform indentation obscures block boundaries. Nesting: The elimination uses two nested loops, while output contains nested conditionals; manageable depth is made harder to follow by formatting. Clarity of intent: LuckyNumbers suggests a purpose, but names like a and k, unexplained elimination rules, and the redundant count limit make the algorithm unclear. Code length: Compact overall, though the counter and break add unnecessary code because the array contains only 1000 entries. Action granularity: Most lines contain a single statement; loop headers combine operations conventionally. Reading flow: Sequential phases support reading, but missing spacing, meaningful names, comments, and proper indentation interrupt comprehension.