Do I have a twin with permutated remainders?Split a word into parts with equal scoresChinese Remainder TheoremMaximise the squared differenceIs it a Mersenne Prime?Your Base to 1-2-3-Tribonacci to Binary back to Your BaseIs this number a factorial?Write numbers as a difference of Nth powersConjugate permutationsAm I a Pillai prime?Passwords Strong Against Bishops

How to say in German "enjoying home comforts"

Do I have a twin with permutated remainders?

Why doesn't H₄O²⁺ exist?

Can I make "comment-region" comment empty lines?

In romance of three kingdoms why do people still use bamboo sticks when papers are already invented?

Forgetting the musical notes while performing in concert

How do I gain back my faith in my PhD degree?

UK: Is there precedent for the governments e-petition site changing the direction of a government decision?

How do I find out when a node was added to an availability group?

Why are electrically insulating heatsinks so rare? Is it just cost?

What's the point of deactivating Num Lock on login screens?

Why does Kotter return in Welcome Back Kotter

Would Slavery Reparations be considered Bills of Attainder and hence Illegal?

I Accidentally Deleted a Stock Terminal Theme

Latex document compiles but tikzpicture is not showing up

How much of data wrangling is a data scientist's job?

Alternative to sending password over mail?

Has there ever been an airliner design involving reducing generator load by installing solar panels?

Can a rocket refuel on Mars from water?

Diode datasheet reading

AES: Why is it a good practice to use only the first 16bytes of a hash for encryption?

Assassin's bullet with mercury

What mechanic is there to disable a threat instead of killing it?

What is going on with Captain Marvel's blood colour?



Do I have a twin with permutated remainders?


Split a word into parts with equal scoresChinese Remainder TheoremMaximise the squared differenceIs it a Mersenne Prime?Your Base to 1-2-3-Tribonacci to Binary back to Your BaseIs this number a factorial?Write numbers as a difference of Nth powersConjugate permutationsAm I a Pillai prime?Passwords Strong Against Bishops













11












$begingroup$


We define $R_n$ as the list of remainders of the Euclidean division of $n$ by $2$, $3$, $5$ and $7$.



Given an integer $nge0$, you have to figure out if there exists an integer $0<k<210$ such that $R_n+k$ is a permutation of $R_n$.



Examples



The criterion is met for $n=8$, because:



  • we have $R_8=(0,2,3,1)$

  • for $k=44$, we have $R_n+k=R_52=(0,1,2,3)$, which is a permutation of $R_8$

The criterion is not met for $n=48$, because:



  • we have $R_48=(0,0,3,6)$

  • the smallest integer $k>0$ such that $R_n+k$ is a permutation of $R_48$ is $k=210$ (leading to $R_258=(0,0,3,6)$ as well)

Rules



  • You may either output a truthy value if $k$ exists and a falsy value otherwise, or two distinct and consistent values of your choice.

  • This is code-golf.

Hint




Do you really need to compute $k$? Well, maybe. Or maybe not.




Test cases



Some values of $n$ for which $k$ exists:



3, 4, 5, 8, 30, 100, 200, 2019


Some values of $n$ for which $k$ does not exist:



0, 1, 2, 13, 19, 48, 210, 1999









share|improve this question









$endgroup$











  • $begingroup$
    Why can't 2 happen? k=2 = 0,2; k=2+28=0,2. Same for 1999 + 42
    $endgroup$
    – Ven
    4 hours ago











  • $begingroup$
    Oh, duh. I get it now.
    $endgroup$
    – Ven
    3 hours ago















11












$begingroup$


We define $R_n$ as the list of remainders of the Euclidean division of $n$ by $2$, $3$, $5$ and $7$.



Given an integer $nge0$, you have to figure out if there exists an integer $0<k<210$ such that $R_n+k$ is a permutation of $R_n$.



Examples



The criterion is met for $n=8$, because:



  • we have $R_8=(0,2,3,1)$

  • for $k=44$, we have $R_n+k=R_52=(0,1,2,3)$, which is a permutation of $R_8$

The criterion is not met for $n=48$, because:



  • we have $R_48=(0,0,3,6)$

  • the smallest integer $k>0$ such that $R_n+k$ is a permutation of $R_48$ is $k=210$ (leading to $R_258=(0,0,3,6)$ as well)

Rules



  • You may either output a truthy value if $k$ exists and a falsy value otherwise, or two distinct and consistent values of your choice.

  • This is code-golf.

Hint




Do you really need to compute $k$? Well, maybe. Or maybe not.




Test cases



Some values of $n$ for which $k$ exists:



3, 4, 5, 8, 30, 100, 200, 2019


Some values of $n$ for which $k$ does not exist:



0, 1, 2, 13, 19, 48, 210, 1999









share|improve this question









$endgroup$











  • $begingroup$
    Why can't 2 happen? k=2 = 0,2; k=2+28=0,2. Same for 1999 + 42
    $endgroup$
    – Ven
    4 hours ago











  • $begingroup$
    Oh, duh. I get it now.
    $endgroup$
    – Ven
    3 hours ago













11












11








11





$begingroup$


We define $R_n$ as the list of remainders of the Euclidean division of $n$ by $2$, $3$, $5$ and $7$.



Given an integer $nge0$, you have to figure out if there exists an integer $0<k<210$ such that $R_n+k$ is a permutation of $R_n$.



Examples



The criterion is met for $n=8$, because:



  • we have $R_8=(0,2,3,1)$

  • for $k=44$, we have $R_n+k=R_52=(0,1,2,3)$, which is a permutation of $R_8$

The criterion is not met for $n=48$, because:



  • we have $R_48=(0,0,3,6)$

  • the smallest integer $k>0$ such that $R_n+k$ is a permutation of $R_48$ is $k=210$ (leading to $R_258=(0,0,3,6)$ as well)

Rules



  • You may either output a truthy value if $k$ exists and a falsy value otherwise, or two distinct and consistent values of your choice.

  • This is code-golf.

Hint




Do you really need to compute $k$? Well, maybe. Or maybe not.




Test cases



Some values of $n$ for which $k$ exists:



3, 4, 5, 8, 30, 100, 200, 2019


Some values of $n$ for which $k$ does not exist:



0, 1, 2, 13, 19, 48, 210, 1999









share|improve this question









$endgroup$




We define $R_n$ as the list of remainders of the Euclidean division of $n$ by $2$, $3$, $5$ and $7$.



Given an integer $nge0$, you have to figure out if there exists an integer $0<k<210$ such that $R_n+k$ is a permutation of $R_n$.



Examples



The criterion is met for $n=8$, because:



  • we have $R_8=(0,2,3,1)$

  • for $k=44$, we have $R_n+k=R_52=(0,1,2,3)$, which is a permutation of $R_8$

The criterion is not met for $n=48$, because:



  • we have $R_48=(0,0,3,6)$

  • the smallest integer $k>0$ such that $R_n+k$ is a permutation of $R_48$ is $k=210$ (leading to $R_258=(0,0,3,6)$ as well)

Rules



  • You may either output a truthy value if $k$ exists and a falsy value otherwise, or two distinct and consistent values of your choice.

  • This is code-golf.

Hint




Do you really need to compute $k$? Well, maybe. Or maybe not.




Test cases



Some values of $n$ for which $k$ exists:



3, 4, 5, 8, 30, 100, 200, 2019


Some values of $n$ for which $k$ does not exist:



0, 1, 2, 13, 19, 48, 210, 1999






code-golf decision-problem number-theory






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 4 hours ago









ArnauldArnauld

80.3k797332




80.3k797332











  • $begingroup$
    Why can't 2 happen? k=2 = 0,2; k=2+28=0,2. Same for 1999 + 42
    $endgroup$
    – Ven
    4 hours ago











  • $begingroup$
    Oh, duh. I get it now.
    $endgroup$
    – Ven
    3 hours ago
















  • $begingroup$
    Why can't 2 happen? k=2 = 0,2; k=2+28=0,2. Same for 1999 + 42
    $endgroup$
    – Ven
    4 hours ago











  • $begingroup$
    Oh, duh. I get it now.
    $endgroup$
    – Ven
    3 hours ago















$begingroup$
Why can't 2 happen? k=2 = 0,2; k=2+28=0,2. Same for 1999 + 42
$endgroup$
– Ven
4 hours ago





$begingroup$
Why can't 2 happen? k=2 = 0,2; k=2+28=0,2. Same for 1999 + 42
$endgroup$
– Ven
4 hours ago













$begingroup$
Oh, duh. I get it now.
$endgroup$
– Ven
3 hours ago




$begingroup$
Oh, duh. I get it now.
$endgroup$
– Ven
3 hours ago










9 Answers
9






active

oldest

votes


















6












$begingroup$


R, 63 59 bytes





s=scan()%%c(2,3,5,7);i=which(s<c(0,2,3,5));any(s[i]-s[i-1])


Try it online!



-4 bytes thanks to Giuseppe



(The explanation contains a spoiler as to how to solve the problem without computing $k$.)



Explanation:
Let $s$ be the list of remainders. Note the constraint that s[1]<2, s[2]<3, s[3]<5 and s[4]<7. There exists a $k$ iff there is a permutation of $s$, distinct from $s$, which verifies the constraint. In practice, this will be verified if one of the following conditions is verified:



  • s[2]<2 and s[2]!=s[1]

  • s[3]<3 and s[3]!=s[2]

  • s[4]<5 and s[4]!=s[3]

The code can probably be golfed further.






share|improve this answer










New contributor




Robin Ryder is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






$endgroup$




















    1












    $begingroup$


    Wolfram Language (Mathematica), 67 bytes



    !FreeQ[Sort/@Table[R[#+k],k,209],Sort@R@#]&
    R@n_:=n~Mod~2,3,5,7


    Try it online!






    share|improve this answer











    $endgroup$




















      1












      $begingroup$


      C# (Visual C# Interactive Compiler), 125 bytes





      n=>Enumerable.Range(n+1,209).Any(c=>new[]c%2,c%3,c%5,c%7.OrderBy(x=>x).SequenceEqual(new[]n%2,n%3,n%5,n%7.OrderBy(x=>x)))


      Try it online!






      share|improve this answer









      $endgroup$




















        1












        $begingroup$


        Perl 6, 64 61 59 bytes





        my&f=bag($_ X%2,3,5,7);any(($_+1+ ^209).map(&f))===f $_


        Try it online!



        Fixed my bug by changing set to bag :).



        Explanation:



        my&f=bag($_ X%2,3,5,7);any(($_+1+ ^209).map(&f))===f $_
        my&f=bag($_ X%2,3,5,7); # helper function: f
        $_ ; # takes the implicit argument $_
        X%2,3,5,7 # cross metaoperator with divide: does cross product division
        bag( ) # stores the results in a bag (weighed set, knows how many identical items it contains)
        ($_+1+ ^209) # Generates a range of the argument +1 up to 209+argument+1
        .map(&f) # Apply the helper function for each value in that range
        any( ) # Is any of these bags
        === # Equal to
        f $_ # The helper function result for the given argument?



        Alternative version:



        my @a=($_+ ^209).map:bag($_ X%2,3,5,7);@a.shift===any @a





        share|improve this answer











        $endgroup$




















          1












          $begingroup$


          R, 72 bytes





          n=scan();b=c(2,3,5,7);for(i in n+1:209)F=F|all(sort(n%%b)==sort(i%%b));F


          Try it online!






          share|improve this answer









          $endgroup$




















            1












            $begingroup$


            Haskell, 69 bytes



            Based on the Chinese remainder theorem





            m=[2,3,5,7]
            f x|s<-mod x<$>m=or[m!!a>b|a<-[0..2],b<-drop a s,s!!a/=b]


            Try it online!






            share|improve this answer









            $endgroup$




















              1












              $begingroup$


              Jelly, 15 bytes



              8ÆR©PḶ+%Ṣ¥€®ċḢ$


              Try it online!



              I’m sure there’s a golfier answer. I’ve interpreted a truthy value as being anything that isn’t zero, so here it’s the number of possible values of k. If it needs to be two distinct values that costs me a further byte.






              share|improve this answer









              $endgroup$












              • $begingroup$
                All good regarding truthy vs falsey. Using the meta agreed definition of truthy and falsey (effectively "what does the language's if-else construct do if there is one) zero is falsey and non-zeros are truthy (? is the if-else construct in Jelly; for some languages it's a harder question).
                $endgroup$
                – Jonathan Allan
                2 hours ago










              • $begingroup$
                Oh, and you could get distinct values for no cost with Ḣe$ if you wanted :)
                $endgroup$
                – Jonathan Allan
                2 hours ago










              • $begingroup$
                @JonathanAllan yes of course, thanks. :)
                $endgroup$
                – Nick Kennedy
                1 hour ago



















              1












              $begingroup$


              PHP, 81 78 72 bytes





              while($y<3)if($argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u)die(T);


              A riff on @Robin Ryder's answer. Input is via STDIN, output is 'T' if truthy, and empty '' if falsy.



              $ echo 3|php -nF euc.php
              T
              $ echo 5|php -nF euc.php
              T
              $ echo 2019|php -nF euc.php
              T
              $ echo 0|php -nF euc.php

              $ echo 2|php -nF euc.php

              $ echo 1999|php -nF euc.php


              Try it online!



              Or 73 bytes with 1 or 0 response



              while($y<3)$r|=$argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u;echo$r;



              $ echo 2019|php -nF euc.php
              1
              $ echo 1999|php -nF euc.php
              0


              Try it online (all test cases)!



              Original answer, 133 127 bytes



              function($n)while(++$k<210)if(($r=function($n)foreach([2,3,5,7]as$d)$o[]=$n%$d;sort($o);return$o;)($n+$k)==$r($n))return 1;


              Try it online!






              share|improve this answer











              $endgroup$




















                0












                $begingroup$


                Ruby, 54 bytes





                ->n[2,3,5,7].each_cons(2).any?


                Try it online!



                Uses Robin Ryder's clever solution.






                share|improve this answer









                $endgroup$













                  Your Answer





                  StackExchange.ifUsing("editor", function ()
                  return StackExchange.using("mathjaxEditing", function ()
                  StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
                  StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
                  );
                  );
                  , "mathjax-editing");

                  StackExchange.ifUsing("editor", function ()
                  StackExchange.using("externalEditor", function ()
                  StackExchange.using("snippets", function ()
                  StackExchange.snippets.init();
                  );
                  );
                  , "code-snippets");

                  StackExchange.ready(function()
                  var channelOptions =
                  tags: "".split(" "),
                  id: "200"
                  ;
                  initTagRenderer("".split(" "), "".split(" "), channelOptions);

                  StackExchange.using("externalEditor", function()
                  // Have to fire editor after snippets, if snippets enabled
                  if (StackExchange.settings.snippets.snippetsEnabled)
                  StackExchange.using("snippets", function()
                  createEditor();
                  );

                  else
                  createEditor();

                  );

                  function createEditor()
                  StackExchange.prepareEditor(
                  heartbeatType: 'answer',
                  autoActivateHeartbeat: false,
                  convertImagesToLinks: false,
                  noModals: true,
                  showLowRepImageUploadWarning: true,
                  reputationToPostImages: null,
                  bindNavPrevention: true,
                  postfix: "",
                  imageUploader:
                  brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                  contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                  allowUrls: true
                  ,
                  onDemand: true,
                  discardSelector: ".discard-answer"
                  ,immediatelyShowMarkdownHelp:true
                  );



                  );













                  draft saved

                  draft discarded


















                  StackExchange.ready(
                  function ()
                  StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f182669%2fdo-i-have-a-twin-with-permutated-remainders%23new-answer', 'question_page');

                  );

                  Post as a guest















                  Required, but never shown

























                  9 Answers
                  9






                  active

                  oldest

                  votes








                  9 Answers
                  9






                  active

                  oldest

                  votes









                  active

                  oldest

                  votes






                  active

                  oldest

                  votes









                  6












                  $begingroup$


                  R, 63 59 bytes





                  s=scan()%%c(2,3,5,7);i=which(s<c(0,2,3,5));any(s[i]-s[i-1])


                  Try it online!



                  -4 bytes thanks to Giuseppe



                  (The explanation contains a spoiler as to how to solve the problem without computing $k$.)



                  Explanation:
                  Let $s$ be the list of remainders. Note the constraint that s[1]<2, s[2]<3, s[3]<5 and s[4]<7. There exists a $k$ iff there is a permutation of $s$, distinct from $s$, which verifies the constraint. In practice, this will be verified if one of the following conditions is verified:



                  • s[2]<2 and s[2]!=s[1]

                  • s[3]<3 and s[3]!=s[2]

                  • s[4]<5 and s[4]!=s[3]

                  The code can probably be golfed further.






                  share|improve this answer










                  New contributor




                  Robin Ryder is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                  Check out our Code of Conduct.






                  $endgroup$

















                    6












                    $begingroup$


                    R, 63 59 bytes





                    s=scan()%%c(2,3,5,7);i=which(s<c(0,2,3,5));any(s[i]-s[i-1])


                    Try it online!



                    -4 bytes thanks to Giuseppe



                    (The explanation contains a spoiler as to how to solve the problem without computing $k$.)



                    Explanation:
                    Let $s$ be the list of remainders. Note the constraint that s[1]<2, s[2]<3, s[3]<5 and s[4]<7. There exists a $k$ iff there is a permutation of $s$, distinct from $s$, which verifies the constraint. In practice, this will be verified if one of the following conditions is verified:



                    • s[2]<2 and s[2]!=s[1]

                    • s[3]<3 and s[3]!=s[2]

                    • s[4]<5 and s[4]!=s[3]

                    The code can probably be golfed further.






                    share|improve this answer










                    New contributor




                    Robin Ryder is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.






                    $endgroup$















                      6












                      6








                      6





                      $begingroup$


                      R, 63 59 bytes





                      s=scan()%%c(2,3,5,7);i=which(s<c(0,2,3,5));any(s[i]-s[i-1])


                      Try it online!



                      -4 bytes thanks to Giuseppe



                      (The explanation contains a spoiler as to how to solve the problem without computing $k$.)



                      Explanation:
                      Let $s$ be the list of remainders. Note the constraint that s[1]<2, s[2]<3, s[3]<5 and s[4]<7. There exists a $k$ iff there is a permutation of $s$, distinct from $s$, which verifies the constraint. In practice, this will be verified if one of the following conditions is verified:



                      • s[2]<2 and s[2]!=s[1]

                      • s[3]<3 and s[3]!=s[2]

                      • s[4]<5 and s[4]!=s[3]

                      The code can probably be golfed further.






                      share|improve this answer










                      New contributor




                      Robin Ryder is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.






                      $endgroup$




                      R, 63 59 bytes





                      s=scan()%%c(2,3,5,7);i=which(s<c(0,2,3,5));any(s[i]-s[i-1])


                      Try it online!



                      -4 bytes thanks to Giuseppe



                      (The explanation contains a spoiler as to how to solve the problem without computing $k$.)



                      Explanation:
                      Let $s$ be the list of remainders. Note the constraint that s[1]<2, s[2]<3, s[3]<5 and s[4]<7. There exists a $k$ iff there is a permutation of $s$, distinct from $s$, which verifies the constraint. In practice, this will be verified if one of the following conditions is verified:



                      • s[2]<2 and s[2]!=s[1]

                      • s[3]<3 and s[3]!=s[2]

                      • s[4]<5 and s[4]!=s[3]

                      The code can probably be golfed further.







                      share|improve this answer










                      New contributor




                      Robin Ryder is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.









                      share|improve this answer



                      share|improve this answer








                      edited 1 hour ago





















                      New contributor




                      Robin Ryder is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.









                      answered 3 hours ago









                      Robin RyderRobin Ryder

                      3916




                      3916




                      New contributor




                      Robin Ryder is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.





                      New contributor





                      Robin Ryder is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.






                      Robin Ryder is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.





















                          1












                          $begingroup$


                          Wolfram Language (Mathematica), 67 bytes



                          !FreeQ[Sort/@Table[R[#+k],k,209],Sort@R@#]&
                          R@n_:=n~Mod~2,3,5,7


                          Try it online!






                          share|improve this answer











                          $endgroup$

















                            1












                            $begingroup$


                            Wolfram Language (Mathematica), 67 bytes



                            !FreeQ[Sort/@Table[R[#+k],k,209],Sort@R@#]&
                            R@n_:=n~Mod~2,3,5,7


                            Try it online!






                            share|improve this answer











                            $endgroup$















                              1












                              1








                              1





                              $begingroup$


                              Wolfram Language (Mathematica), 67 bytes



                              !FreeQ[Sort/@Table[R[#+k],k,209],Sort@R@#]&
                              R@n_:=n~Mod~2,3,5,7


                              Try it online!






                              share|improve this answer











                              $endgroup$




                              Wolfram Language (Mathematica), 67 bytes



                              !FreeQ[Sort/@Table[R[#+k],k,209],Sort@R@#]&
                              R@n_:=n~Mod~2,3,5,7


                              Try it online!







                              share|improve this answer














                              share|improve this answer



                              share|improve this answer








                              edited 4 hours ago

























                              answered 4 hours ago









                              J42161217J42161217

                              13.7k21253




                              13.7k21253





















                                  1












                                  $begingroup$


                                  C# (Visual C# Interactive Compiler), 125 bytes





                                  n=>Enumerable.Range(n+1,209).Any(c=>new[]c%2,c%3,c%5,c%7.OrderBy(x=>x).SequenceEqual(new[]n%2,n%3,n%5,n%7.OrderBy(x=>x)))


                                  Try it online!






                                  share|improve this answer









                                  $endgroup$

















                                    1












                                    $begingroup$


                                    C# (Visual C# Interactive Compiler), 125 bytes





                                    n=>Enumerable.Range(n+1,209).Any(c=>new[]c%2,c%3,c%5,c%7.OrderBy(x=>x).SequenceEqual(new[]n%2,n%3,n%5,n%7.OrderBy(x=>x)))


                                    Try it online!






                                    share|improve this answer









                                    $endgroup$















                                      1












                                      1








                                      1





                                      $begingroup$


                                      C# (Visual C# Interactive Compiler), 125 bytes





                                      n=>Enumerable.Range(n+1,209).Any(c=>new[]c%2,c%3,c%5,c%7.OrderBy(x=>x).SequenceEqual(new[]n%2,n%3,n%5,n%7.OrderBy(x=>x)))


                                      Try it online!






                                      share|improve this answer









                                      $endgroup$




                                      C# (Visual C# Interactive Compiler), 125 bytes





                                      n=>Enumerable.Range(n+1,209).Any(c=>new[]c%2,c%3,c%5,c%7.OrderBy(x=>x).SequenceEqual(new[]n%2,n%3,n%5,n%7.OrderBy(x=>x)))


                                      Try it online!







                                      share|improve this answer












                                      share|improve this answer



                                      share|improve this answer










                                      answered 3 hours ago









                                      Embodiment of IgnoranceEmbodiment of Ignorance

                                      2,398126




                                      2,398126





















                                          1












                                          $begingroup$


                                          Perl 6, 64 61 59 bytes





                                          my&f=bag($_ X%2,3,5,7);any(($_+1+ ^209).map(&f))===f $_


                                          Try it online!



                                          Fixed my bug by changing set to bag :).



                                          Explanation:



                                          my&f=bag($_ X%2,3,5,7);any(($_+1+ ^209).map(&f))===f $_
                                          my&f=bag($_ X%2,3,5,7); # helper function: f
                                          $_ ; # takes the implicit argument $_
                                          X%2,3,5,7 # cross metaoperator with divide: does cross product division
                                          bag( ) # stores the results in a bag (weighed set, knows how many identical items it contains)
                                          ($_+1+ ^209) # Generates a range of the argument +1 up to 209+argument+1
                                          .map(&f) # Apply the helper function for each value in that range
                                          any( ) # Is any of these bags
                                          === # Equal to
                                          f $_ # The helper function result for the given argument?



                                          Alternative version:



                                          my @a=($_+ ^209).map:bag($_ X%2,3,5,7);@a.shift===any @a





                                          share|improve this answer











                                          $endgroup$

















                                            1












                                            $begingroup$


                                            Perl 6, 64 61 59 bytes





                                            my&f=bag($_ X%2,3,5,7);any(($_+1+ ^209).map(&f))===f $_


                                            Try it online!



                                            Fixed my bug by changing set to bag :).



                                            Explanation:



                                            my&f=bag($_ X%2,3,5,7);any(($_+1+ ^209).map(&f))===f $_
                                            my&f=bag($_ X%2,3,5,7); # helper function: f
                                            $_ ; # takes the implicit argument $_
                                            X%2,3,5,7 # cross metaoperator with divide: does cross product division
                                            bag( ) # stores the results in a bag (weighed set, knows how many identical items it contains)
                                            ($_+1+ ^209) # Generates a range of the argument +1 up to 209+argument+1
                                            .map(&f) # Apply the helper function for each value in that range
                                            any( ) # Is any of these bags
                                            === # Equal to
                                            f $_ # The helper function result for the given argument?



                                            Alternative version:



                                            my @a=($_+ ^209).map:bag($_ X%2,3,5,7);@a.shift===any @a





                                            share|improve this answer











                                            $endgroup$















                                              1












                                              1








                                              1





                                              $begingroup$


                                              Perl 6, 64 61 59 bytes





                                              my&f=bag($_ X%2,3,5,7);any(($_+1+ ^209).map(&f))===f $_


                                              Try it online!



                                              Fixed my bug by changing set to bag :).



                                              Explanation:



                                              my&f=bag($_ X%2,3,5,7);any(($_+1+ ^209).map(&f))===f $_
                                              my&f=bag($_ X%2,3,5,7); # helper function: f
                                              $_ ; # takes the implicit argument $_
                                              X%2,3,5,7 # cross metaoperator with divide: does cross product division
                                              bag( ) # stores the results in a bag (weighed set, knows how many identical items it contains)
                                              ($_+1+ ^209) # Generates a range of the argument +1 up to 209+argument+1
                                              .map(&f) # Apply the helper function for each value in that range
                                              any( ) # Is any of these bags
                                              === # Equal to
                                              f $_ # The helper function result for the given argument?



                                              Alternative version:



                                              my @a=($_+ ^209).map:bag($_ X%2,3,5,7);@a.shift===any @a





                                              share|improve this answer











                                              $endgroup$




                                              Perl 6, 64 61 59 bytes





                                              my&f=bag($_ X%2,3,5,7);any(($_+1+ ^209).map(&f))===f $_


                                              Try it online!



                                              Fixed my bug by changing set to bag :).



                                              Explanation:



                                              my&f=bag($_ X%2,3,5,7);any(($_+1+ ^209).map(&f))===f $_
                                              my&f=bag($_ X%2,3,5,7); # helper function: f
                                              $_ ; # takes the implicit argument $_
                                              X%2,3,5,7 # cross metaoperator with divide: does cross product division
                                              bag( ) # stores the results in a bag (weighed set, knows how many identical items it contains)
                                              ($_+1+ ^209) # Generates a range of the argument +1 up to 209+argument+1
                                              .map(&f) # Apply the helper function for each value in that range
                                              any( ) # Is any of these bags
                                              === # Equal to
                                              f $_ # The helper function result for the given argument?



                                              Alternative version:



                                              my @a=($_+ ^209).map:bag($_ X%2,3,5,7);@a.shift===any @a






                                              share|improve this answer














                                              share|improve this answer



                                              share|improve this answer








                                              edited 3 hours ago

























                                              answered 3 hours ago









                                              VenVen

                                              2,49511223




                                              2,49511223





















                                                  1












                                                  $begingroup$


                                                  R, 72 bytes





                                                  n=scan();b=c(2,3,5,7);for(i in n+1:209)F=F|all(sort(n%%b)==sort(i%%b));F


                                                  Try it online!






                                                  share|improve this answer









                                                  $endgroup$

















                                                    1












                                                    $begingroup$


                                                    R, 72 bytes





                                                    n=scan();b=c(2,3,5,7);for(i in n+1:209)F=F|all(sort(n%%b)==sort(i%%b));F


                                                    Try it online!






                                                    share|improve this answer









                                                    $endgroup$















                                                      1












                                                      1








                                                      1





                                                      $begingroup$


                                                      R, 72 bytes





                                                      n=scan();b=c(2,3,5,7);for(i in n+1:209)F=F|all(sort(n%%b)==sort(i%%b));F


                                                      Try it online!






                                                      share|improve this answer









                                                      $endgroup$




                                                      R, 72 bytes





                                                      n=scan();b=c(2,3,5,7);for(i in n+1:209)F=F|all(sort(n%%b)==sort(i%%b));F


                                                      Try it online!







                                                      share|improve this answer












                                                      share|improve this answer



                                                      share|improve this answer










                                                      answered 3 hours ago









                                                      Aaron HaymanAaron Hayman

                                                      3516




                                                      3516





















                                                          1












                                                          $begingroup$


                                                          Haskell, 69 bytes



                                                          Based on the Chinese remainder theorem





                                                          m=[2,3,5,7]
                                                          f x|s<-mod x<$>m=or[m!!a>b|a<-[0..2],b<-drop a s,s!!a/=b]


                                                          Try it online!






                                                          share|improve this answer









                                                          $endgroup$

















                                                            1












                                                            $begingroup$


                                                            Haskell, 69 bytes



                                                            Based on the Chinese remainder theorem





                                                            m=[2,3,5,7]
                                                            f x|s<-mod x<$>m=or[m!!a>b|a<-[0..2],b<-drop a s,s!!a/=b]


                                                            Try it online!






                                                            share|improve this answer









                                                            $endgroup$















                                                              1












                                                              1








                                                              1





                                                              $begingroup$


                                                              Haskell, 69 bytes



                                                              Based on the Chinese remainder theorem





                                                              m=[2,3,5,7]
                                                              f x|s<-mod x<$>m=or[m!!a>b|a<-[0..2],b<-drop a s,s!!a/=b]


                                                              Try it online!






                                                              share|improve this answer









                                                              $endgroup$




                                                              Haskell, 69 bytes



                                                              Based on the Chinese remainder theorem





                                                              m=[2,3,5,7]
                                                              f x|s<-mod x<$>m=or[m!!a>b|a<-[0..2],b<-drop a s,s!!a/=b]


                                                              Try it online!







                                                              share|improve this answer












                                                              share|improve this answer



                                                              share|improve this answer










                                                              answered 3 hours ago









                                                              H.PWizH.PWiz

                                                              10.3k21351




                                                              10.3k21351





















                                                                  1












                                                                  $begingroup$


                                                                  Jelly, 15 bytes



                                                                  8ÆR©PḶ+%Ṣ¥€®ċḢ$


                                                                  Try it online!



                                                                  I’m sure there’s a golfier answer. I’ve interpreted a truthy value as being anything that isn’t zero, so here it’s the number of possible values of k. If it needs to be two distinct values that costs me a further byte.






                                                                  share|improve this answer









                                                                  $endgroup$












                                                                  • $begingroup$
                                                                    All good regarding truthy vs falsey. Using the meta agreed definition of truthy and falsey (effectively "what does the language's if-else construct do if there is one) zero is falsey and non-zeros are truthy (? is the if-else construct in Jelly; for some languages it's a harder question).
                                                                    $endgroup$
                                                                    – Jonathan Allan
                                                                    2 hours ago










                                                                  • $begingroup$
                                                                    Oh, and you could get distinct values for no cost with Ḣe$ if you wanted :)
                                                                    $endgroup$
                                                                    – Jonathan Allan
                                                                    2 hours ago










                                                                  • $begingroup$
                                                                    @JonathanAllan yes of course, thanks. :)
                                                                    $endgroup$
                                                                    – Nick Kennedy
                                                                    1 hour ago
















                                                                  1












                                                                  $begingroup$


                                                                  Jelly, 15 bytes



                                                                  8ÆR©PḶ+%Ṣ¥€®ċḢ$


                                                                  Try it online!



                                                                  I’m sure there’s a golfier answer. I’ve interpreted a truthy value as being anything that isn’t zero, so here it’s the number of possible values of k. If it needs to be two distinct values that costs me a further byte.






                                                                  share|improve this answer









                                                                  $endgroup$












                                                                  • $begingroup$
                                                                    All good regarding truthy vs falsey. Using the meta agreed definition of truthy and falsey (effectively "what does the language's if-else construct do if there is one) zero is falsey and non-zeros are truthy (? is the if-else construct in Jelly; for some languages it's a harder question).
                                                                    $endgroup$
                                                                    – Jonathan Allan
                                                                    2 hours ago










                                                                  • $begingroup$
                                                                    Oh, and you could get distinct values for no cost with Ḣe$ if you wanted :)
                                                                    $endgroup$
                                                                    – Jonathan Allan
                                                                    2 hours ago










                                                                  • $begingroup$
                                                                    @JonathanAllan yes of course, thanks. :)
                                                                    $endgroup$
                                                                    – Nick Kennedy
                                                                    1 hour ago














                                                                  1












                                                                  1








                                                                  1





                                                                  $begingroup$


                                                                  Jelly, 15 bytes



                                                                  8ÆR©PḶ+%Ṣ¥€®ċḢ$


                                                                  Try it online!



                                                                  I’m sure there’s a golfier answer. I’ve interpreted a truthy value as being anything that isn’t zero, so here it’s the number of possible values of k. If it needs to be two distinct values that costs me a further byte.






                                                                  share|improve this answer









                                                                  $endgroup$




                                                                  Jelly, 15 bytes



                                                                  8ÆR©PḶ+%Ṣ¥€®ċḢ$


                                                                  Try it online!



                                                                  I’m sure there’s a golfier answer. I’ve interpreted a truthy value as being anything that isn’t zero, so here it’s the number of possible values of k. If it needs to be two distinct values that costs me a further byte.







                                                                  share|improve this answer












                                                                  share|improve this answer



                                                                  share|improve this answer










                                                                  answered 2 hours ago









                                                                  Nick KennedyNick Kennedy

                                                                  1,31649




                                                                  1,31649











                                                                  • $begingroup$
                                                                    All good regarding truthy vs falsey. Using the meta agreed definition of truthy and falsey (effectively "what does the language's if-else construct do if there is one) zero is falsey and non-zeros are truthy (? is the if-else construct in Jelly; for some languages it's a harder question).
                                                                    $endgroup$
                                                                    – Jonathan Allan
                                                                    2 hours ago










                                                                  • $begingroup$
                                                                    Oh, and you could get distinct values for no cost with Ḣe$ if you wanted :)
                                                                    $endgroup$
                                                                    – Jonathan Allan
                                                                    2 hours ago










                                                                  • $begingroup$
                                                                    @JonathanAllan yes of course, thanks. :)
                                                                    $endgroup$
                                                                    – Nick Kennedy
                                                                    1 hour ago

















                                                                  • $begingroup$
                                                                    All good regarding truthy vs falsey. Using the meta agreed definition of truthy and falsey (effectively "what does the language's if-else construct do if there is one) zero is falsey and non-zeros are truthy (? is the if-else construct in Jelly; for some languages it's a harder question).
                                                                    $endgroup$
                                                                    – Jonathan Allan
                                                                    2 hours ago










                                                                  • $begingroup$
                                                                    Oh, and you could get distinct values for no cost with Ḣe$ if you wanted :)
                                                                    $endgroup$
                                                                    – Jonathan Allan
                                                                    2 hours ago










                                                                  • $begingroup$
                                                                    @JonathanAllan yes of course, thanks. :)
                                                                    $endgroup$
                                                                    – Nick Kennedy
                                                                    1 hour ago
















                                                                  $begingroup$
                                                                  All good regarding truthy vs falsey. Using the meta agreed definition of truthy and falsey (effectively "what does the language's if-else construct do if there is one) zero is falsey and non-zeros are truthy (? is the if-else construct in Jelly; for some languages it's a harder question).
                                                                  $endgroup$
                                                                  – Jonathan Allan
                                                                  2 hours ago




                                                                  $begingroup$
                                                                  All good regarding truthy vs falsey. Using the meta agreed definition of truthy and falsey (effectively "what does the language's if-else construct do if there is one) zero is falsey and non-zeros are truthy (? is the if-else construct in Jelly; for some languages it's a harder question).
                                                                  $endgroup$
                                                                  – Jonathan Allan
                                                                  2 hours ago












                                                                  $begingroup$
                                                                  Oh, and you could get distinct values for no cost with Ḣe$ if you wanted :)
                                                                  $endgroup$
                                                                  – Jonathan Allan
                                                                  2 hours ago




                                                                  $begingroup$
                                                                  Oh, and you could get distinct values for no cost with Ḣe$ if you wanted :)
                                                                  $endgroup$
                                                                  – Jonathan Allan
                                                                  2 hours ago












                                                                  $begingroup$
                                                                  @JonathanAllan yes of course, thanks. :)
                                                                  $endgroup$
                                                                  – Nick Kennedy
                                                                  1 hour ago





                                                                  $begingroup$
                                                                  @JonathanAllan yes of course, thanks. :)
                                                                  $endgroup$
                                                                  – Nick Kennedy
                                                                  1 hour ago












                                                                  1












                                                                  $begingroup$


                                                                  PHP, 81 78 72 bytes





                                                                  while($y<3)if($argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u)die(T);


                                                                  A riff on @Robin Ryder's answer. Input is via STDIN, output is 'T' if truthy, and empty '' if falsy.



                                                                  $ echo 3|php -nF euc.php
                                                                  T
                                                                  $ echo 5|php -nF euc.php
                                                                  T
                                                                  $ echo 2019|php -nF euc.php
                                                                  T
                                                                  $ echo 0|php -nF euc.php

                                                                  $ echo 2|php -nF euc.php

                                                                  $ echo 1999|php -nF euc.php


                                                                  Try it online!



                                                                  Or 73 bytes with 1 or 0 response



                                                                  while($y<3)$r|=$argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u;echo$r;



                                                                  $ echo 2019|php -nF euc.php
                                                                  1
                                                                  $ echo 1999|php -nF euc.php
                                                                  0


                                                                  Try it online (all test cases)!



                                                                  Original answer, 133 127 bytes



                                                                  function($n)while(++$k<210)if(($r=function($n)foreach([2,3,5,7]as$d)$o[]=$n%$d;sort($o);return$o;)($n+$k)==$r($n))return 1;


                                                                  Try it online!






                                                                  share|improve this answer











                                                                  $endgroup$

















                                                                    1












                                                                    $begingroup$


                                                                    PHP, 81 78 72 bytes





                                                                    while($y<3)if($argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u)die(T);


                                                                    A riff on @Robin Ryder's answer. Input is via STDIN, output is 'T' if truthy, and empty '' if falsy.



                                                                    $ echo 3|php -nF euc.php
                                                                    T
                                                                    $ echo 5|php -nF euc.php
                                                                    T
                                                                    $ echo 2019|php -nF euc.php
                                                                    T
                                                                    $ echo 0|php -nF euc.php

                                                                    $ echo 2|php -nF euc.php

                                                                    $ echo 1999|php -nF euc.php


                                                                    Try it online!



                                                                    Or 73 bytes with 1 or 0 response



                                                                    while($y<3)$r|=$argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u;echo$r;



                                                                    $ echo 2019|php -nF euc.php
                                                                    1
                                                                    $ echo 1999|php -nF euc.php
                                                                    0


                                                                    Try it online (all test cases)!



                                                                    Original answer, 133 127 bytes



                                                                    function($n)while(++$k<210)if(($r=function($n)foreach([2,3,5,7]as$d)$o[]=$n%$d;sort($o);return$o;)($n+$k)==$r($n))return 1;


                                                                    Try it online!






                                                                    share|improve this answer











                                                                    $endgroup$















                                                                      1












                                                                      1








                                                                      1





                                                                      $begingroup$


                                                                      PHP, 81 78 72 bytes





                                                                      while($y<3)if($argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u)die(T);


                                                                      A riff on @Robin Ryder's answer. Input is via STDIN, output is 'T' if truthy, and empty '' if falsy.



                                                                      $ echo 3|php -nF euc.php
                                                                      T
                                                                      $ echo 5|php -nF euc.php
                                                                      T
                                                                      $ echo 2019|php -nF euc.php
                                                                      T
                                                                      $ echo 0|php -nF euc.php

                                                                      $ echo 2|php -nF euc.php

                                                                      $ echo 1999|php -nF euc.php


                                                                      Try it online!



                                                                      Or 73 bytes with 1 or 0 response



                                                                      while($y<3)$r|=$argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u;echo$r;



                                                                      $ echo 2019|php -nF euc.php
                                                                      1
                                                                      $ echo 1999|php -nF euc.php
                                                                      0


                                                                      Try it online (all test cases)!



                                                                      Original answer, 133 127 bytes



                                                                      function($n)while(++$k<210)if(($r=function($n)foreach([2,3,5,7]as$d)$o[]=$n%$d;sort($o);return$o;)($n+$k)==$r($n))return 1;


                                                                      Try it online!






                                                                      share|improve this answer











                                                                      $endgroup$




                                                                      PHP, 81 78 72 bytes





                                                                      while($y<3)if($argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u)die(T);


                                                                      A riff on @Robin Ryder's answer. Input is via STDIN, output is 'T' if truthy, and empty '' if falsy.



                                                                      $ echo 3|php -nF euc.php
                                                                      T
                                                                      $ echo 5|php -nF euc.php
                                                                      T
                                                                      $ echo 2019|php -nF euc.php
                                                                      T
                                                                      $ echo 0|php -nF euc.php

                                                                      $ echo 2|php -nF euc.php

                                                                      $ echo 1999|php -nF euc.php


                                                                      Try it online!



                                                                      Or 73 bytes with 1 or 0 response



                                                                      while($y<3)$r|=$argn%($u='235'[$y])!=($b=$argn%'357'[$y++])&$b<$u;echo$r;



                                                                      $ echo 2019|php -nF euc.php
                                                                      1
                                                                      $ echo 1999|php -nF euc.php
                                                                      0


                                                                      Try it online (all test cases)!



                                                                      Original answer, 133 127 bytes



                                                                      function($n)while(++$k<210)if(($r=function($n)foreach([2,3,5,7]as$d)$o[]=$n%$d;sort($o);return$o;)($n+$k)==$r($n))return 1;


                                                                      Try it online!







                                                                      share|improve this answer














                                                                      share|improve this answer



                                                                      share|improve this answer








                                                                      edited 54 mins ago

























                                                                      answered 4 hours ago









                                                                      gwaughgwaugh

                                                                      1,998517




                                                                      1,998517





















                                                                          0












                                                                          $begingroup$


                                                                          Ruby, 54 bytes





                                                                          ->n[2,3,5,7].each_cons(2).any?


                                                                          Try it online!



                                                                          Uses Robin Ryder's clever solution.






                                                                          share|improve this answer









                                                                          $endgroup$

















                                                                            0












                                                                            $begingroup$


                                                                            Ruby, 54 bytes





                                                                            ->n[2,3,5,7].each_cons(2).any?


                                                                            Try it online!



                                                                            Uses Robin Ryder's clever solution.






                                                                            share|improve this answer









                                                                            $endgroup$















                                                                              0












                                                                              0








                                                                              0





                                                                              $begingroup$


                                                                              Ruby, 54 bytes





                                                                              ->n[2,3,5,7].each_cons(2).any?


                                                                              Try it online!



                                                                              Uses Robin Ryder's clever solution.






                                                                              share|improve this answer









                                                                              $endgroup$




                                                                              Ruby, 54 bytes





                                                                              ->n[2,3,5,7].each_cons(2).any?


                                                                              Try it online!



                                                                              Uses Robin Ryder's clever solution.







                                                                              share|improve this answer












                                                                              share|improve this answer



                                                                              share|improve this answer










                                                                              answered 1 hour ago









                                                                              histocrathistocrat

                                                                              19.2k43173




                                                                              19.2k43173



























                                                                                  draft saved

                                                                                  draft discarded
















































                                                                                  If this is an answer to a challenge…



                                                                                  • …Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.


                                                                                  • …Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
                                                                                    Explanations of your answer make it more interesting to read and are very much encouraged.


                                                                                  • …Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.


                                                                                  More generally…



                                                                                  • …Please make sure to answer the question and provide sufficient detail.


                                                                                  • …Avoid asking for help, clarification or responding to other answers (use comments instead).




                                                                                  draft saved


                                                                                  draft discarded














                                                                                  StackExchange.ready(
                                                                                  function ()
                                                                                  StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f182669%2fdo-i-have-a-twin-with-permutated-remainders%23new-answer', 'question_page');

                                                                                  );

                                                                                  Post as a guest















                                                                                  Required, but never shown





















































                                                                                  Required, but never shown














                                                                                  Required, but never shown












                                                                                  Required, but never shown







                                                                                  Required, but never shown

































                                                                                  Required, but never shown














                                                                                  Required, but never shown












                                                                                  Required, but never shown







                                                                                  Required, but never shown







                                                                                  Popular posts from this blog

                                                                                  名間水力發電廠 目录 沿革 設施 鄰近設施 註釋 外部連結 导航菜单23°50′10″N 120°42′41″E / 23.83611°N 120.71139°E / 23.83611; 120.7113923°50′10″N 120°42′41″E / 23.83611°N 120.71139°E / 23.83611; 120.71139計畫概要原始内容臺灣第一座BOT 模式開發的水力發電廠-名間水力電廠名間水力發電廠 水利署首件BOT案原始内容《小檔案》名間電廠 首座BOT水力發電廠原始内容名間電廠BOT - 經濟部水利署中區水資源局

                                                                                  格濟夫卡 參考資料 导航菜单51°3′40″N 34°2′21″E / 51.06111°N 34.03917°E / 51.06111; 34.03917ГезівкаПогода в селі 编辑或修订