[Question]
  [
> 
> [Robber's Thread here](https://codegolf.stackexchange.com/questions/140794/im-thinking-of-a-number-robbers-thread)
> 
> 
> 
In this [cops-and-robbers](/questions/tagged/cops-and-robbers "show questions tagged 'cops-and-robbers'") challenge cops will think of a positive integer. They will then write a program or function that outputs one value when provided the number as input and another value for all other positive integer inputs. Cops will then reveal the program in an answer keeping the number a secret. Robbers can crack an answer by finding the number.
Here's the catch: this is *not* [code-golf](/questions/tagged/code-golf "show questions tagged 'code-golf'"), instead your score will be the secret number with a lower score being better. Obviously you cannot reveal your score while robbers are still trying to find it. An answer that has not been cracked one week after its posting may have its score revealed and be marked safe. Safe answers cannot be cracked.
It probably goes without saying but you should be able to score your answer. That is you should know exactly what value is accepted by your decision machine. Simply knowing that there is one is not enough.
## Use of Cryptographic functions
Unlike most cops and robbers challenge which ask you not to use cryptographic functions, this challenge not only entirely allows them but encourages them. You are free to create answers in any way as long as you are trying to win. That being said, answers using other methods are also welcome here. The goal of the challenge is to win, and as long as you don't cheat nothing is off the table.
  
[Answer]
# [Tampio](https://github.com/fergusq/tampio), [Cracked](https://codegolf.stackexchange.com/a/140954/66323)
```
m:n tulos on luvun funktio tulostettuna m:ään, missä luku on x:n kerrottuna kahdella seuraaja, kun x on luku m:stä luettuna
x:n funktio on luku sadalla kerrottuna sadalla salattuna, missä luku on x alempana sadan seuraajaa tai nolla
x:n seuraajan edeltäjä on x
x:n negatiivisena edeltäjä on x:n seuraaja negatiivisena
nollan edeltäjä on yksi negatiivisena
x salattuna y:llä on örkin edeltäjä, missä örkki on x:n seuraajan seuraaja jaettuna y:llä korotettuna kahteen
sata on kiven kolo, missä kivi on kallio katkaistuna maanjäristyksestä
kallio on yhteenlasku sovellettuna mannerlaatan jäseniin ja tulivuoren jäseniin
tulivuori on nolla lisättynä kallioon
mannerlaatta on yksi lisättynä mannerlaattaan
maanjäristys on kallion törmäys
a:n lisättynä b:hen kolo on yhteenlasku kutsuttuna a:lla ja b:n kololla
tyhjyyden kolo on nolla
x:n törmäys on x tutkittuna kahdellatoista, missä kaksitoista on 15 ynnä 6
x ynnä y on y vähennettynä x:stä
```
Run with:
```
python3 suomi.py file.suomi --io
```
The instructions for installing the interpreter are included in the Github page. Please tell if you have any difficulties running this.
> 
>  [The program in pseudocode.](https://pastebin.com/DRgJZTUT) The program performs very slowly because my interpreter is super inefficient. Also, I didn't use any opt-in optimizations available, which can reduce the evaluation time from several minutes to about 10 seconds.
> 
> 
> 
[Answer]
# [Perl 6](https://perl6.org) — [Cracked!](https://codegolf.stackexchange.com/a/140880/69059)
In a strict sense, this isn't an acceptable submission because it doesn't try very hard to win. Instead, it hopes to offer a pleasant puzzle.
It is a "pure math" program which is intended to be cracked by contemplation. I'm sure that you could bruteforce the solution (after cleaning up some sloppy programming I've purposefully committed), but for "full credit" (:--)), you should be able to explain what it does on the math grounds.
```
sub postfix:<!>(Int $n where $n >= 0)
{
	[*] 1 .. $n;
}
sub series($x)
{
	[+] (0 .. 107).map({ (i*($x % (8*π))) ** $_ / $_! });
}
sub prefix:<∫>(Callable $f)
{
	my $n = 87931;
	([+] (0 .. $n).map({
		π/$n * ($_ == 0 || $_ == $n ?? 1 !! 2) * $f(2*π * $_/$n)
	})).round(.01);
}
sub f(Int $in where $in >= 0)
{
	∫ { series($_)**11 / series($in * $_) }
}
```
You are supposed to crack the function f(). (That's the function that takes one natural number and returns one of the two results.) **Warning:** As shown by @Nitrodon, the program actually behaves wrongly and "accepts" an *infinite* number of inputs. Since I have no idea of how to fix it, I just remark for the future solvers that *the number I had in mind is less than 70000*.
If you try to run this in TIO, it **will** time out. This is intentional. (Since it's not supposed to be run at all!)
Finally, I tried to write some reasonably clear code. You should be mostly able to read it fluently even if you're not familiar with the language. Only two remarks: the square brackets [*op*] mean reducing ("folding", in Haskell lingo) a list with the operator *op*; and the sub called `postfix:<!>` actually defines a postfix operator named ! (i. e. used like `5!` -- it does exactly what you would expect). Similarly for the `prefix:<∫>` one.
I hope that somebody enjoys this one, but I'm not sure if I got the difficulty right. Feel free to bash me in the comments :—).
[Try it online!](https://tio.run/##TZHPTgIxEMbP26f4iJi0q64sGkEQOHjy7s0QUqQLDUuXtF3@BEg4@i4@DO/gi@AsIHhpJt/MfPOb6VTZ9Gm/d3kf08z5RC8aL6U2fzMeZYP5SFlVBO0WKoKtWPARdhEjikhssg1jRaNTVivHy4tjxU0XvFKUxJWaiCZyylfgOqQ8rsHr4W4rhEAYotzDPT0lbMTZa2rVgeHn67vNX2Wayn5KBMnBerIsWFqo154f4iYL@GVW2ZxGsSDYbe@pLASnAS0Cx3qNY0hyp0P8pRKqhEC@vEo8RdSjHsGCjRCRzXIz4FElvmAlx4vo80n0v5sQK1bnK/REGMYxbfYnaHPwF9iQ2/4K7yNFa2ZDKyfQDrlTA/SXmChpHLIEnvJJbj69zgwNFiRIDy/HitJGFf@kvZ4paOPVUFlIM4BVPrfmWHDy8PMMM5nmyt0i1WMSRto1mJNLcr17FM39Lw "Perl 6 – Try It Online")
[Answer]
# JavaScript, [Cracked](https://codegolf.stackexchange.com/a/140913/73026)
I've obfuscated this as much as I can, to the point where it can't fit within this answer.
[Try it here!](https://repl.it/K4qT/0)
Click Run, then type in console `guess(n)`
Returns undefined if you get the wrong answer, returns true otherwise.
Edit: Somehow I overlooked the part about my score being the number. Oh well, my number is very very big. Good luck solving it anyways.
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), score: ...1 ([cracked](https://codegolf.stackexchange.com/a/140801/41024))
```
5ȷ2_c⁼“ḍtṚøWoḂRf¦ẓ)ṿẒƓSÑÞ=v7&ðþạẆ®GȯżʠṬƑḋɓḋ⁼Ụ9ḌṢE¹’
```
[Try it online!](https://tio.run/##AW8AkP9qZWxsef//Nci3Ml9j4oG84oCc4biNdOG5msO4V2/huIJSZsKm4bqTKeG5v@G6ksaTU8ORw549djcmw7DDvuG6oeG6hsKuR8ivxbzKoOG5rMaR4biLyZPhuIvigbzhu6Q54biM4bmiRcK54oCZ//8 "Jelly – Try It Online")
1Really expected me to reveal it? Come on! Oh well, it has a score of 134. There, I said it!
[Answer]
# Python 2 [(cracked)](https://codegolf.stackexchange.com/a/140908/48931)
I wouldn't suggest brute force. Hope you like generators!
```
print~~[all([c[1](c[0](l))==h and c[0](l)[p]==c[0](p^q) for c in [(str,len)] for o in [2] for h in [(o*o*o+o/o)**o] for p,q in [(60,59),(40,44),(19,20),(63,58),(61,53),(12,10),(43,42),(1,3),(35,33),(37,45),(17,18),(32,35),(20,16),(22,30),(45,43),(48,53),(58,59),(79,75),(68,77)]] + [{i+1 for i in f(r[5])}=={j(i) for j in [q[3]] for i in l} for q in [(range,zip,str,int)] for r in [[3,1,4,1,5,9]] for g in [q[1]] for s in [[p(l)[i:i+r[5]] for p in [q[2]] for i in [r[5]*u for f in [q[0]] for u in f(r[5])]]] for l in s + g(*s) + [[z for y in [s[i+a][j:j+r[0]] for g in [q[0]] for a in g(r[0])] for z in y] for k in [[w*r[0] for i in [q[0]] for w in i(r[0])]] for i in k for j in k] for f in [q[0]]]) for l in [int(raw_input())]][0]
```
[Try it online!](https://tio.run/##XVHtjoIwEHwVfrawydEvUROepOldiOdHkQACxqjRV@e6bS8aY8h2ZmfbnbG/Toeu5fPcD7adnk9dNQ3RG80M2ejckIbSsjwkVfubRKx7U5b@3H@faLLrhmST2DbRZJwGaLYtNZ7sPMkDOARFl7pf1n11NE270OnhFHqLHNSKApE5SOkqWwHPXV0IUEusDJRAngNDXgqQHDEgKxQIXwuQCtkCGE4JDgIxz4EtsDrspxVI1MtluFUtw@vFCgrUL5ZQFNSYJEv03WbM72px0x0ZtDL0UZb3mtgQQO0tnLQw5iVsHv4c7Q1Vu9/CzfaAMbmsY0yDb2sBDKT7FKziHft4J4t4DMIe/wK7thluESOMSv7@usZ@evbELgryKDi/@TCRa5Abnd09SUeKtvXNN65@eNQ2q4yu17V7OP9Y8R9XiPcEBdHdDZlrOB@DgUuK/bdFX/MXxDbOv0mOr5CP5tORoa/9tcvVJX35sW1/ngh1tzjJPDMu/gA "Python 2 – Try It Online")
Outputs `1` for the correct number, `0` otherwise.
[Answer]
# [Haskell](https://www.haskell.org/), [cracked](https://codegolf.stackexchange.com/questions/140794/im-thinking-of-a-number-robbers-thread/140869#140869)
This is purely based on arithmetic. Note that `myfun` is the actual function, while `h` is just a helper function.
```
h k = sum $ map (\x -> (x*x)**(-1) - 1/(x**(2-1/(fromIntegral k)))) [1..2*3*3*47*14593]
myfun inp | inp == (last $ filter (\k -> h k < (-7.8015e-5)  )[1..37*333667-1]) = 1
          | otherwise = 0
main = print $ show $ myfun 42 -- replace 42 with your input
```
[Try it online!](https://tio.run/##PY/BboMwEETvfMUcerAtmcYYQiqF3PsNbQ5WZYqFDcg2gkj5d2rn0F1pNaOVdt4OKoza2uMYMKJDWB3e4NQC8r2D30B2tlPGCBcUHOI9eUYqnkTvZ/c5Rf3rlcVIU@FLlGXFZOq6ZaJuPuS9cI9@nWCmBc/X7DoQq0JMMb2xUfuUNOakDHAF4W15OYlG84YCNF@ULZNSns8tF3eaGEWB/3pijoP2mwk6bU5F4ZSZklq8mXJEGOYtP/SCqCtwDq8Xq350dpuJAx7z6jPZGo/jDw "Haskell – Try It Online")
[Answer]
# Java, [Cracked by Nitrodon](https://codegolf.stackexchange.com/a/141028/42199)
```
import java.math.BigDecimal;
public class Main {
    private static final BigDecimal A = BigDecimal.valueOf(4);
    private static final BigDecimal B = BigDecimal.valueOf(5, 1);
    private static final BigDecimal C = BigDecimal.valueOf(-191222921, 9);
    private static BigDecimal a;
    private static BigDecimal b;
    private static int c;
    private static boolean f(BigDecimal i, BigDecimal j, BigDecimal k, BigDecimal l, BigDecimal m) {
        return i.compareTo(j) == 0 && k.compareTo(l) >= 0 && k.compareTo(m) <= 0;
    }
    private static boolean g(int i, int j, BigDecimal k) {
        c = (c + i) % 4;
        if (j == 0) {
            BigDecimal l = a; BigDecimal m = b;
            switch (c) {
                case 0: a = a.add(k); return f(C, b, B, l, a);
                case 1: b = b.add(k); return f(B, a, C, m, b);
                case 2: a = a.subtract(k); return f(C, b, B, a, l);
                case 3: b = b.subtract(k); return f(B, a, C, b, m);
                default: return false;
            }
        } else {
            --j;
            k = k.divide(A);
            return g(0, j, k) || g(1, j, k) || g(3, j, k) || g(3, j, k) || g(0, j, k) || g(1, j, k) || g(1, j, k) || g(3, j, k);
        }
    }
    private static boolean h(int i) {
        a = BigDecimal.ZERO; b = BigDecimal.ZERO; c = 0;
        return g(0, i, BigDecimal.ONE);
    }
    public static void main(String[] args) {
        int i = Integer.valueOf(args[0]);
        System.out.println(!h(i) && h(i - 1) ? 1 : 0);
    }
}
```
I wanted to try something different than the usual hash and random functions. You can pass the number as a command line argument. Outputs `1` if the correct number is given and `0` otherwise. For small numbers you can also [try it online](https://tio.run/##jZRNc5swEIbP@FdsD82IKWaMnRxs6naSNIceWs80PSWTwwICCwR4QLjTafjt7gpsB2Li9gKzKz3vfmilGLc4zjc8i4NktxPpJi8UxOS0U1Rr@0ZEX7gvUpTuaLSpPCl88CWWJXxDkcGfkbEpxBYVh1KhosVQZCjhBYNrWHZMe4uy4quQXZruv9mbYfbKAud/8NthfOzMnel0Op86FswHdDoKeHbVO10VmQKfWvXa7@W55JhByDq8sLpqcc9KepbsWampG28UXFVFBsL283SDBf@Zs9iE5RImcHEBScctTfg04Cadj@SmKuq3M46YrolS1b9XObZ5@NRm5sMHECa8h0uSM0QILG5SabcY3VpoO7q9esije2kY5S@h/DWp7THDx5LDZAGoIRuDgCWmC/vKQ3ZrgUcpWbpBaLoviLMAT6ueIrQZLSAwJbaLTA9RyspTBfrqjVBEyy43O4Qa5o7xiE73XMBDrKRaHHehLHmzVNOnBk5m24DxOG78CUVI7EBsRcDZdSuzhyM2sfTB0Gk8P5Pl9KzZGescN6yi49Znx2Xdjkt7fti/gA93P1Zu06wTp54hPYi9onr3w159vzMPo9o@RPvQ21wEkNJzxO5VIbLo8QmwiMo2hSYbEv@aKR7x4vgI6B2Pk6emovvfpeKpnVfKpqoyJTP2juow9X2hP4zpuYHP4MCC5rlJod7tdrO/ "Java (OpenJDK 8) – Try It Online").
**Hint:**
> 
>  The main part of the program implements a *variant* of a very well known algorithm. Once you know what it does, you will be able to optimize the given program to calculate the secret number.
> 
> 
> 
**Explanation:**
> 
>  This program implements the traversal of the quadratic variant (type 2) of the well known [Koch curve](https://en.wikipedia.org/wiki/Koch_snowflake) (image from Wikipedia):  
> 
>   
> 
> [![Quadratic_Koch_curve_type2_iterations.png](https://i.stack.imgur.com/6eJVq.png)](https://i.stack.imgur.com/6eJVq.png)  
> 
>   
> 
>  The secret number is the first iteration which doesn't pass through the point (B, C). As correctly recognized by [Nitrodon](https://codegolf.stackexchange.com/users/69059/nitrodon), except of the first iteration we can safely ignore the recursion of all parts of the curve, which don't pass through the given point. By changing a line in the original program accordingly, we can check the correct number even in the [online interpreter](https://tio.run/##jVTBcptADD3jr1AOzSxTzBg7PdjU6SRuDj20nml6aiYHAQteWMADizudxN/uaoE4EFO3F2Np9Z6etFrFuMNxvuVZHCSHg0i3eaEgJqedotrYtyL6zH2RonRHo23lSeGDL7Es4SuKDJ5GxrYQO1QcSoWKDkORoYRXGNzAsmPaO5QVX4fsynT/jb0dxn6wwPkf@GoYPnbmznQ6nU8dC@YDPB0GPHvqnZ6KTIFPrXrr9/JccswgZB28sLpscc9KepbsWampG28UXFVFBsL283SLBf@Rs9iE5RImcHkJScctTbgecBPPR3JTFfu/K46Yromk6s8bjY0On9rMfHgPwoR3cEV0hgiBxY2U52dg2EnauZCfd9/XJly0yoiC/s40oBffRJja73X8KxLf0Ht2WXmqQF@xxOxHXBOwEWl0u0mC0e11lDz6Ng2j/CWUvyExLczwseQwWQBqkI1BQElcaHsfspUFHjXF0leEpvsKcRbgadZTCAWjBQRMCduFTF@ydOoZSkVo2cXNXlIN4475CJ22uICHWEm1OEahLHl9tKefPXAymwaMx3HtTyhDYgdiJwLObhqaFhyxiaVHI6kvKWJOz5qdsc7hhll03v3Zgd00A9vcH/ZXgJ44t27WiVNPsX4KvaJ6L9Ref7szXx5Lswrb1LtcBJDSQmT3qhBZ9PAIWERlI6FWQ@RfMsUjXhzXkI54mDzWFd3/LhVP7bxSNlWVKZmxC6rD1O@CvjCmhQefwIEFDXQtYX84HKazPw "Java (OpenJDK 8) – Try It Online").
> 
> 
> 
[Answer]
# PHP, safe, score:
> 
>  60256
> 
> 
> 
```
<?php
$a = $argv[1];
$b ='0123456789abcdefghijklmnopqrstuvwxyz';
$c = strlen($b);
$d = '';
$e = $a;
while ($e) {
    $d .= $b[$e % $c];
    $e = floor($e / $c);
}
echo ((function_exists($d) && $d($a) === '731f62943ddf6733f493a812fc7aeb7ec07d97b6') ? 1 : 0) . "\n";
```
Outputs 1 if correct, 0 otherwise.
Edit: I don't think anyone even tried to crack this because:
> 
>  it would be easy to brute force.
> 
> 
> 
Explanation:
> 
>  I take the input and convert it to "base 36", but I don't reverse the remainders to produce the final number. The number 60256 is "1ahs" in base 36. Unreversed, that is "sha1", which is a function in PHP. The final check is that sha1(60256) equals the hash.
> 
> 
> 
[Answer]
# Pyth, [Cracked by Erik the Outgolfer](https://codegolf.stackexchange.com/a/140802/59487)\*
I tried to obfuscate this as much as possible.
```
hqQl+r@G7hZ@c." y|çEC#nZÙ¦Y;åê½9{ü/ãÑª#¤
ØìjX\"¦Hó¤Ê#§T£®úåâ«B'3£zÞz~Ð£ë"\,a67Cr@G7hZ
```
**[Try it here!](https://pyth.herokuapp.com/?code=hqQl%2Br%40G7hZ%40c.%22+y%08%7C%C3%A7%C2%85%C2%87EC%23nZ%C3%99%C2%A6Y%3B%C3%A5%C3%AA%C2%BD%C2%819%06%7B%C3%BC%2F%C3%A3%C3%91%C2%8A%C2%AA%23%06%C2%95%12%C2%A4%0A%C3%98%C3%AC%1AjX%5C%22%C2%8E%0F%C2%93%C2%A6H%C3%B3%C2%90%C2%A4%C3%8A%23%1D%0B%1D%C2%A7T%C2%85%C2%A3%04%07%10%C2%99%1D%C2%AE%18%C3%BA%C3%A5%C2%91%C3%A2%0B%C2%91%C2%ABB%14%273%C2%A3z%C3%9Ez%7E%C2%81%C3%90%16%C2%A3%C3%AB%19%22%5C%2Ca67Cr%40G7hZ&input=1&test_suite_input=1%0A2%0A3%0A4%0A5%0A6%0A7%0A8%0A9%0A10&debug=0)**
> 
>  \*The number was 9.
> 
> 
> 
[Answer]
# Octave, score: ???
It's pretty much guaranteed that no other number will have the exact same 20 random numbers in the end of the list of `1e8` of numbers.
```
function val = cnr(num)
rand("seed", num);
randomints = randi(flintmax-1,1e4,1e4);
val = isequal(randomints(end+(-20:0))(:), ...
 [7918995738984448
  7706857103687680
  1846690847916032
  6527244872712192
  5318889109979136
  7877935851634688
  3899749505695744
  4256732691824640
  2803292404973568
  1410614496854016
  2592550976225280
  4221573015797760
  5165372483305472
  7184095696125952
  6588467484033024
  6670217354674176
  4537379545153536
  3669953454538752
  5365211942879232
  1471052739772416
  5355814017564672](:));
end
```
Outputs `1` for the secret number, `0` otherwise.
I ran this in Octave 4.2.0.
---
*"Sleeps and other slowdowns can be removed when bruteforcing."* 
Good luck with that :)
[Answer]
# [Ly](https://github.com/LyricLy/Ly), score 239, [cracked](https://codegolf.stackexchange.com/questions/140794/im-thinking-of-a-number-robbers-thread/140857#140857)
```
(1014750)1sp[l1+sp1-]28^RrnI24^=u;
```
[Try it online!](https://tio.run/##y6n8/1/D0MDQxNzUQNOwuCA6x1C7uMBQN9bIIi6oKM/TyCTOttT6/38A "Ly – Try It Online")
I'm banking on nobody knowing Ly here, although I know how easily that could change... *sweats*
Explanation:
```
(1014750)1sp[l1+sp1-]              # meaningless code that counts up to 1014750 and discards the result
                     28^Rr         # range from 255 to 0
                          nI       # get the index from the range equal to the input
                            24^=   # check if it's 16
                                u; # print the result
```
[Answer]
# [Brain-Flak](https://github.com/DJMcMayhem/Brain-Flak), score 1574 ([cracked](https://codegolf.stackexchange.com/a/140888/69059))
```
<>(((((((((((((((((((([([(((()()()){}){}){}])]){})))){}{}{}{}()){}){})){}{})){}{})){}((((((((()()){}){}){}){}[()]){}){}){}){}())){})){}){}{}{}){})(((((((((((((((((((()()){}){}()){}){}){}()){}){}()){}){})){}{}())){}{})){}{}){}){}){})(((((((((((((((()()){}()){}()){}){}){}()){}){}){}()){}){}){}()){}()){}()){})<>{({}[()])<>({}({})<({}({})<({}({})<({}({}))>)>)>)<>}({}<>(){[()](<{}>)}<>)
```
[Try it online!](https://tio.run/##dVAxDoAgDPxOb3BxJv0IYdDBxGgcXIlvxxYQMCJ3KfRoL4X5nNZjWPZpC8EwdZYVyIIC/kp0cHqAKgnlMio1Fp@2XWgpWTyk6JVLYrOwN0/xafw@EvJI7TCFfccafu1fVUk07Ck/Rr5PVNV@dnCEYc2kGl77yPiLITlCGG8 "Brain-Flak – Try It Online")
[Answer]
# [dc](https://www.gnu.org/software/bc/manual/dc-1.05/html_mono/dc.html)
```
#!/bin/dc
[[yes]P] sy [[no]P] sn [ly sp] sq [ln sp] sr [lp ss] st [ln ss] su
?  sa
119560046169484541198922343958138057249252666454948744274520813687698868044973597713429463135512055466078366508770799591124879298416357795802621986464667571278338128259356758545026669650713817588084391470449324204624551285340087267973444310321615325862852648829135607602791474437312218673178016667591286378293
la %
d 0 r 0
=q !=r
10 154 ^ 10 153 ^ +
d la r la
<t !<u
1 la 1 la
>s !>n
```
[Try it online!](https://tio.run/##JY/LSgNBEEX3/RUVxJUL6/0AH7/gflCIiQshjElGF/n6WKMM9Bxu3a57e7@7Xm829@@f8/1@N6bp8rG8vrzCcoFpmr/@cIbpcIHl2HhqnP/x3HiEZWn8/ldX/BnPAMt2EJU5ojp5aappC1nMolKWJIkWrMXG7t7jNoUqhxpjjz3DK9MTVSvEKoJEudSFxIwYzdQdI8XdMCMwqqyIuBcVVyq5WESHITt3uGt/HhbEfUuSONlKrKU0NVyLVO/qoKTWErO7ksZaQVi5H8O6ZqeJYmeyR3dTVSEUJicTtvSes2smV1ftio4c6572hRAzpfc/EsnXPtULXaLtMg5buB17QDgDjscTbB7PgxDIFN7gD6Thri3tPPcxHr5h8/AzaBXWYzwtsHmar9df "dc – Try It Online")
---
**Note:** This submission has been modified since it was submitted. The original submission (below) was invalid and cracked by Sleafar in the comments below. (An input of `1` gives rise to the output `yes`, but there is one other number that gives the same result.)
```
#!/bin/dc
[[yes]P] sy [[no]P] sn [ly sp] sq [ln sp] sr
?  sa
119560046169484541198922343958138057249252666454948744274520813687698868044973597713429463135512055466078366508770799591124879298416357795802621986464667571278338128259356758545026669650713817588084391470449324204624551285340087267973444310321615325862852648829135607602791474437312218673178016667591286378293
la %
d 0 r 0
=q !=r
10 154 ^ 10 153 ^ +
d la r la
<p !<n
```
[Try it online!](https://tio.run/##JY9LasNAEET3c4oxIass3P8P2OQK2QsHHDuLgFFsaaXTKy0Hwajorql6c72s68tu//Uz7q@XNgzL93z6OPV56cMw/j7l2Ifb0ud7yUfJ8V9O7b33@dwQUw1ADC0lRKUGkUQsnBrIAeokSUpmVusyuQi5KEGtLdwywgJE0lnTHVkoxRhZFQlUxQw82Ewh3MEzNRGpgpIyBI3VvcqAjKrcpD5zdaS6xYEUpMlao1BR2ECysqoosGYBUawoviEwCdVjSLbuUBaoTjIvNhFhBCY0VCYNqz2ZRFAWaiEakG855XNGIgyrvwegbTxZgcZedm63c39t1w596tCOj747Tg2ho0r/7E/BJd7KUs6pjna4991hXNc/ "dc – Try It Online")
[Answer]
# [Ruby](https://www.ruby-lang.org/), safe, score:
> 
>  63105425988599693916 
> 
> 
> 
```
#!ruby -lnaF|
if /^#{eval [$F,0]*"**#{~/$/}+"}$/ && $_.to_i.to_s(36)=~/joe|tim/
  p true
else
  p false
end
```
[Try it online!](https://tio.run/##KypNqvz/PzNNQT9OuTq1LDFHIVrFTccgVktJS0u5uk5fRb9WW6lWRV9BTU1BJV6vJD8@E0QUaxibadrW6Wflp9aUZObqcykoFCiUFJWmcqXmFKeCeWmJIFZqXsr//8b/8gtKMvPziv/rutX81038r5sHAA "Ruby – Try It Online")
Explanation:
> 
>  The first conditional checks the input number for [narcissism](https://codegolf.stackexchange.com/questions/15244/test-a-number-for-narcissism). The thread I originally wrote for was coincidentally bumped around the same time I posted this, but I guess nobody noticed. The second converts the number to base 36, which uses letters as digits, and checks if the string contains "joe" or "tim". It can be proven (through exhaustion) that there is only one narcissistic number named either Joe or Tim (Joe), because the narcissistic numbers are finite. Proof that they're finite: the result of taking an n-digit number, raising each digit to the nth power, and summing is bounded above by `n*9^n`, while the value of an n-digit number is bounded below by n^10. The ratio between these terms is n\*(9/10)^n, which eventually decreases monotonically as n increases. Once it falls below 1, there can be no n-digit narcissistic numbers.
> 
> 
> 
[Answer]
# Swift 3 (53 bytes) - [Cracked](https://codegolf.stackexchange.com/a/140809/59487)
```
func f(n:Int){print(n==1+Int(.pi*123456.0) ?222:212)}
```
How to run this? – `f(n:1)`.
**[Test Here.](http://swift.sandbox.bluemix.net/#/repl/59a46197dcc75d533468baab)**
[Answer]
# Java, score: 3141592 ([Cracked](https://codegolf.stackexchange.com/questions/140794/im-thinking-of-a-number-robbers-thread/140974#140974))
```
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0063\u006c\u0061\u0073\u0073\u0020\u004d\u0061\u006e\u0067\u006f\u0020\u007b
\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0076\u006f\u0069\u0064\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0028\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0073\u0029\u007b\u0066\u006f\u0072\u0028\u0063\u0068\u0061\u0072\u0020\u0063\u0020\u003a\u0020\u0073\u002e\u0074\u006f\u0043\u0068\u0061\u0072\u0041\u0072\u0072\u0061\u0079\u0028\u0029\u0029\u007b\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074\u002e\u0070\u0072\u0069\u006e\u0074\u0028\u0022\u005c\u005c\u0075\u0030\u0030\u0022\u002b\u0049\u006e\u0074\u0065\u0067\u0065\u0072\u002e\u0074\u006f\u0048\u0065\u0078\u0053\u0074\u0072\u0069\u006e\u0067\u0028\u0063\u0029\u0029\u003b\u007d\u007d
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028\u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0061\u0072\u0067\u0073\u0029\u0020\u007b\u0069\u006e\u0074\u0020\u0078\u0020\u0020\u003d\u0020\u0049\u006e\u0074\u0065\u0067\u0065\u0072\u002e\u0070\u0061\u0072\u0073\u0065\u0049\u006e\u0074\u0028\u0061\u0072\u0067\u0073\u005b\u0030\u005d\u0029\u003b
\u0064\u006f\u0075\u0062\u006c\u0065\u0020\u0061\u003d\u0020\u0078\u002f\u0038\u002e\u002d\u0033\u0039\u0032\u0036\u0039\u0039\u003b\u0064\u006f\u0075\u0062\u006c\u0065\u0020\u0062\u0020\u003d\u0020\u004d\u0061\u0074\u0068\u002e\u006c\u006f\u0067\u0031\u0030\u0028\u0028\u0069\u006e\u0074\u0029\u0020\u0028\u0078\u002f\u004d\u0061\u0074\u0068\u002e\u0050\u0049\u002b\u0031\u0029\u0029\u002d\u0036\u003b
\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074\u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u0028\u0061\u002f\u0062\u003d\u003d\u0061\u002f\u0062\u003f\u0022\u0046\u0061\u0069\u006c\u0022\u003a\u0022\u004f\u004b\u0022\u0020\u0029\u0029\u003b
\u007d\u007d
```
[Answer]
# Python 3, score 1 (safe)
Not a very interesting solution, but better a safe cop than a dead cop.
```
import hashlib
def sha(x):
    return hashlib.sha256(x).digest()
x = input().encode()
original = x
for _ in range(1000000000):
    x = sha(x)
print(int(x==b'3\xdf\x11\x81\xd4\xfd\x1b\xab19\xbd\xc0\xc3|Y~}\xea83\xaf\xa5\xb4]\xae\x15wN*!\xbe\xd5' and int(original.decode())<1000))
```
Outputs `1` for the target number, `0` otherwise. Input is taken from stdin. The last part (`and int(original.decode())<1000`) exists only to ensure only one answer, otherwise there would obviously be infinitely many answers.
[Answer]
# [C (gcc)](https://gcc.gnu.org/), score ???
```
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <wmmintrin.h>
#include <openssl/bio.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>
union State
{
    uint8_t u8[128];
    __m128i i128[8];
} state;
void encrypt()
{
    BIO *key = BIO_new_mem_buf
    (
        "-----BEGIN PUBLIC KEY-----\n"
        "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5CBa50oQ3gOPHNt0TLxp96t+6\n"
        "i2KvOp0CedPHdJ+T/wr/ATo7Rz+K/hzC7kQvsrEcr0Zkx7Ll/0tpFxekEk/9PaDt\n"
        "wyFyEntgz8SGUl4aPJkPCgHuJhFMyUflDTywpke3KkSv3V/VjRosn+yRu5mbA/9G\n"
        "mnOvSVBFn3P2rAOTbwIDAQAB\n"
        "-----END PUBLIC KEY-----\n",
        -1
    );
    RSA *rsa = PEM_read_bio_RSA_PUBKEY(key, &rsa, NULL, NULL);
    uint8_t ciphertext[128];
    RSA_public_encrypt(128, state.u8, ciphertext, rsa, RSA_NO_PADDING);
    memcpy(state.u8, ciphertext, 128);
}
void verify()
{
    if (memcmp
    (
        "\x93\xfd\x38\xf6\x22\xf8\xaa\x2f\x7c\x74\xef\x38\x01\xec\x44\x19"
        "\x76\x56\x27\x7e\xc6\x6d\xe9\xaf\x60\x2e\x68\xc7\x62\xfd\x2a\xd8"
        "\xb7\x3c\xc9\x78\xc9\x0f\x6b\xf0\x7c\xf8\xe5\x3c\x4f\x1c\x39\x6e"
        "\xc8\xa8\x99\x91\x3b\x73\x7a\xb8\x56\xf9\x28\xe7\x2e\xb2\x82\x5c"
        "\xb8\x36\x24\xfb\x26\x96\x32\x91\xe5\xee\x9f\x98\xdf\x44\x49\x7b"
        "\xbc\x6c\xdf\xe9\xe7\xdd\x26\x37\xe5\x3c\xe7\xc0\x2d\x60\xa5\x2e"
        "\xb8\x1f\x7e\xfd\x4f\xe0\x83\x38\x20\x48\x47\x49\x78\x18\xfb\xd8"
        "\x62\xaf\x0a\xfb\x5f\x64\xd1\x3a\xfd\xaf\x4b\xaf\x93\x23\xf4\x36",
        state.u8,
        128
    ))
        exit(0);
}
static inline void quarterround(int offset)
{
    int dest = (offset + 1) % 8, src = offset % 8;
    state.i128[dest] = _mm_aesenc_si128(state.i128[src], state.i128[dest]);
}
int main(int argc, char *argv[])
{
    if (argc != 2)
        exit(0);
    uint64_t input = strtoull(argv[1], NULL, 0);
    state.i128[0] = _mm_set_epi32(0, 0, input >> 32, input);
    for (uint64_t round = 0; round < 0x1p45; round += 2)
    {
        quarterround(0);
        quarterround(2);
        quarterround(4);
        quarterround(6);
        quarterround(7);
        quarterround(1);
        quarterround(3);
        quarterround(5);
    }
    encrypt();
    verify();
    puts("something");
}
```
Since cryptographic solutions are encouraged, here. Exactly one positive integer will print **something**, all others will print nothing. This takes a *long* time, so it cannot be tested online.
[Answer]
# Java, 164517378918, safe
```
import java.math.*;import java.util.*;
public class T{
    static boolean f(BigInteger i){if(i.compareTo(BigInteger.valueOf(2).pow(38))>0)return false;if(i.longValue()==0)return false;if(i.compareTo(BigInteger.ONE)<0)return false;int j=i.multiply(i).hashCode();for(int k=3^3;k<2000;k+=Math.abs(j%300+1)){j+=1+(short)k+i.hashCode()%(k+1);}return i.remainder(BigInteger.valueOf(5*(125+(i.hashCode()<<11))-7)).equals(BigInteger.valueOf(0));}
    @SuppressWarnings("resource")
    public static void main(String[]a){long l=new Scanner(System.in).nextLong();boolean b=false;for(long j=1;j<10;j++){b|=f(BigInteger.valueOf(l-j));}System.out.println(f(BigInteger.valueOf(l))&&b);}
}
```
[Answer]
# TI-BASIC, ~~score: 196164532~~ non-competing
Returns 1 for secret number, 0 otherwise.
```
Ans→rand
rand=1
```
Refer to the note on this page on the [`rand` command](http://tibasicdev.wikidot.com/rand) for more info.
[Answer]
# [Aceto](https://github.com/aceto/aceto), safe
```
  P'*o*7-9JxriM'lo7*9Yxx.P',xe*ikCKxlI.D+∑\a€'#o*84/si5s:i»I9Ji8:i+∑€isi.s1+.i2\H/iQxsUxsxxsxiss*i1dJi/3d2*Ji-d*id*IILCh98*2JixM'e9hxBNRb!p
```
Outputs TrueFalse if correct, FalseFalse otherwise
The number was
> 
> 15752963
> 
> 
> 
[Try it online!](https://tio.run/##FckxDoIwFADQq2AcmnykBNRAGcXBVjFo4mDCgpaEH0lqrMOfnVy9hzdw8yhcpGLytlefm7txzvNKBgaSQCi6YcE6k4A4EvGSTagBvORr6iRf@v3zVdX9483GBtJZaHFuM/x@pFCYZvjvIdEit5HPMa5WIe7IHsjSAK0FjLTCcKpjUBhoQA1SbvJWpBArpII1oqXFdn8aXZ37AQ "Aceto – Try It Online")
[Answer]
# [Python 3](https://docs.python.org/3/), score unknown, [Cracked by Bubbler](https://codegolf.stackexchange.com/a/171455/100664)
```
def check(x):
    if x < 0 or x >= 5754820589765829850934909 or pow(x, 18446744073709551616, 5754820589765829850934909) != 2093489574700401569580277 or x % 4 != 1:
        return "No way ;-("
    return "Cool B-)"
```
[Try it online!](https://tio.run/##dY9BC4JAEIXv/opJCFxQmNWZnd3KDnXvP0QpSuGKGOqvN8VLl95p3uMbZl479ZVvsnl@FiU8quLxikZ1CGBRXcIIJ0Dw3TKcc2BhsimydWLYps4yuowcupVo/RCNMWhLZIQIJRN0zNpoE//fVLDLIV2NdSwkiISajWOLqch2eQ@0Unr7alVX9J@ugfDmYbhPcEyiMPjNr96/4ZKoMAjarm76aCumlZrnLw "Python 3 – Try It Online")
Simple, but may take some time to brute-force ;-) Looking forward to a fast crack ;-)
Footnote: the first two and the last conditions make the answer unique.
BTW how the score is calculated?
Hint 1
> 
>  You may expect there will be 264 answers within `0 <= x < [the 25-digit prime]`, but actually there are only 4, and the last condition eliminates the other 3. If you can crack this, then you will also know the other 3 solutions.
> 
> 
> 
]