NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
▲Making any integer with four 2s (2025) (eli.thegreenplace.net)
hahajk 10 hours ago [-]
i know everyone plays with their own rules, but from my perspective, a square root spends a 2 - it's not an operator like + or ! . there's an implicit "2" since you could also take the cube root or fourth root
jjmarr 7 hours ago [-]
You can use `sin(arctan())` as the repeatable operator instead of sqrt(). Then "unwrap" by applying ^-2 - (2^-2)

3=(sin(arctan(sin(arctan(sin(arctan(2))))))^−2 − (2)^−2

schiffern 48 minutes ago [-]
Perfect answer, I hate it :)
JumpCrisscross 10 hours ago [-]
> it's not an operator like + or !

Squaring is to multiplication as is the latter to addition. If roots are invalid then so should be multiplications.

penteract 9 hours ago [-]
Exponentiation is to multiplication as multiplication is to addition. Squaring is to multiplication as doubling is to addition.
jolmg 5 hours ago [-]
> Squaring is to multiplication as doubling is to addition.

as halving is to addition.

penteract 4 hours ago [-]
Square rooting is to multiplication as halving is to addition.
SamBam 8 hours ago [-]
GP didn't say roots are invalid, just that they burn a two.

If we agree that 2^2 uses two twos (and, indeed, that 2^3 isn't valid, because it uses a 3), then what's the equivalent of a square root?

Of course to my simple math brain, a square root is ^1/2, which includes the digit 1. But I agree there is someone 2-ish about the square root.

direwolf20 6 hours ago [-]
It can be written as ²√2 and there's also ³√2 and so on
schiffern 40 minutes ago [-]
Yep.

It would be like if we had a stylistic convention that you can drop the second number in an addition and it becomes 1. So "6 +" means "6 + 1."

Now I can trivially make any number, but I'm just 'exploiting' a convenience feature in the notation:

0 = 2 + 2 - 2 - 2

1 = 2 + 2 - 2 - 2 +

2 = 2 + 2 - 2 - 2 + +

Etc

9 hours ago [-]
danparsonson 9 hours ago [-]
Would you elaborate on that? That doesn't make any sense to me
drfloyd51 9 hours ago [-]
Multiplication is repeated addition.

2x3= 2+2+2 AxB= A+A B times.

Raising to a power is repeated multiplication.

2^3= 2x2x2 A^B = AxA B times

Roots are the inverse of powers

Division is the inverse of multiplications.

Given this… the OC’s comment about giving exceptions to powers in the rules is nonsense because they are still operations.

mojomark 8 hours ago [-]
Multiplication is not the same as repeated addition, which you can observe as soon as you try the two different operations on fractions or negative numbers. For example, you can't add a number to itself 1/3 times, but you can certainly scale a number by 1/3.

Multiplication is a scaling operation.

reichstein 56 minutes ago [-]
Multiplication is the generalization of repeated addition. Repeated addition can be generalized to fractional values.

In the integers, it is the same thing, with a rule for negative times.

In the rational numbers, you can generalize to adding a number to itself a rational number of times. Adding a/b to itself p/q times is defined as adding a to itself p times, with a divisor that is adding b to itself q times.

So adding the rational 5 (5/1) with itself 2_and-1/3 (4/3) times just means (5+5+5+5) / (1 + 1 + 1) = 20/3, a rational that we can also write as 6 -and-2/3. Only addition of integers is used.

Which is the same as rational multiplication (a/b)(p/q) = (ap)/(b*q).

But it's true that you can't say that rational multiplication is the same as _integer_ repeated addition.

goodmythical 7 hours ago [-]
Can you not? 9+(9(1/3)) [adding nine to itself a third of a time] is nine plus one third of nine {or nine divided by three} which is one of the three in three times three that equals nine which is three therefore 9+(9(1/3))=11 because 9+3=11
alpaca128 53 minutes ago [-]
9+3=12, but otherwise I agree
jibalt 7 hours ago [-]
Because it's just wrong. hahajk said that taking the 2nd root spends a 2, not that "roots are invalid". (FWIW, I'm not necessarily endorsing the view that the square root symbol implicitly spends a 2, I'm just saying that the counterarguments given are logically wrong ... actually more like semantically wrong.)

The comment below by drfloyd51 is similarly wrong ... hahajk didn't say anything about "giving exceptions to powers in the rules".

And the comment by speglt is also wrong:

> If taking a square root is an inherent use of a two, then dividing a number by another number should also be a use of a two, because there are two operands.

The number of operands isn't relevant; the degree of the root is.

And from SideQuark we get

> One could even claim division is raising to the -1 power, thereby disqualifying it in exactly the same manner you disqualify sqrt.

But hahajk said nothing about anything being disqualified. (Not to mention that division is not raising to the -1 power ... raising what? n/d = n * d^-1, but this is completely irrelevant to hahajk's argument.)

spieglt 8 hours ago [-]
Multiplication is adding numbers to themselves. Exponentiation is multiplying numbers by themselves. Ditto division/taking roots. Squaring a number is just the instance of exponentiation that happens to have two operands. If taking a square root is an inherent use of a two, then dividing a number by another number should also be a use of a two, because there are two operands.
ta2345fa59be 3 hours ago [-]
Or use the successor operator.
SideQuark 9 hours ago [-]
Alternatively, one can claim sqrt is a single symbol, and there are extensions requiring a digit. Log, ln, also have hidden bases, but they’re also valid symbols. Cos/sin may be in radians or degrees, both in common use, and no real place to denote it.

One could even claim division is raising to the -1 power, thereby disqualifying it in exactly the same manner you disqualify sqrt. I’ve never seen sqrt with a 2 index; power -1 is seen quite often for division.

Go figure….

bajard 4 hours ago [-]
22 is cheating because 22 = 2*10+2 is arbitrary in base 10. If you write 22 in some base, you have to write the base, and that's an extra number.
adas0693 12 hours ago [-]
there is a related problem (inspired by an interview questions from ITA software, a part of Google now) that asks to find the smallest positive integer that cannot be expressed using a digit K (in [2,9]) N times in an expression that involves the four basic arithmetic operations and the parentheses: +, -, *, /, (, and ).

to make the problem more interesting, the list of operations can be extended to include exponentiation and concatenation.

for example, using the four basic operations for N=4, and K in [2,9], we get:

7 cannot be computed in 4 2s; 11 cannot be computed in 4 3s; 10 cannot be computed in 4 4s; 8 cannot be computed in 4 5s; 9 cannot be computed in 4 6s; 4 cannot be computed in 4 7s; 5 cannot be computed in 4 8s; 4 cannot be computed in 4 9s;

catlifeonmars 10 hours ago [-]
This feels very suspiciously like a finite field problem.
genter 12 hours ago [-]
Are you allowed to brute force it?
argee 10 hours ago [-]
That's how you do it right? It's a BFS with 4 being the max depth, and you print whatever numbers in the problem set which you didn't find.
dooglius 7 hours ago [-]
Figuring that out is presumably part of the interview (and would depend on N)
gnabgib 13 hours ago [-]
Popular last year (368 points, 165 comments) https://news.ycombinator.com/item?id=43145753
allywilson 3 hours ago [-]
I'll just drop this here (yes, it's 4 instead of 2 - they're twice as good): https://fourmula.awsum.info/
Arnt 12 hours ago [-]
Spoilsport.

And JFYI since December is near: https://rant.gulbrandsen.priv.no/hack/advent-calendar-for-ne...

teo_zero 12 hours ago [-]
Never understood why 7 is considered difficult...

7 = ⌈ 2.2² + 2 ⌉

blueblock 11 hours ago [-]
Rounding spoils the fun of the puzzle.
nostrademons 11 hours ago [-]
It seems very much in the spirit of allowing concatenation and square roots...
jtari3333 3 hours ago [-]
Rounding is a completely valid mathematical operation.
anthk 8 hours ago [-]
(2 << 2) - ( 2 / 2)
12 hours ago [-]
AnimalMuppet 12 hours ago [-]
It is difficult when the rules do not allow exponentiation.
Jtsummers 11 hours ago [-]

  7 = ⌈ 2.2 + 2 + 2⌉
Would still work.
13 hours ago [-]
shoo 4 hours ago [-]
There's a direct trivial solution for any natural number using the successor function S(a) = a + 1 from Peano arithmetic.

Encode 0 as 2 + 2 - 2 - 2 then apply S a times to that 0.

Only depends upon natural numbers & Peano stuff, no need for construction of rationals, irrationals, logarithms, etc.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 11:44:15 GMT+0000 (Coordinated Universal Time) with Vercel.