Start a new Kumite
AllAgda (Beta)BF (Beta)CCFML (Beta)ClojureCOBOL (Beta)CoffeeScriptCommonLisp (Beta)CoqC++CrystalC#D (Beta)DartElixirElm (Beta)Erlang (Beta)Factor (Beta)Forth (Beta)Fortran (Beta)F#GoGroovyHaskellHaxe (Beta)Idris (Beta)JavaJavaScriptJulia (Beta)Kotlinλ Calculus (Beta)LeanLuaNASMNim (Beta)Objective-C (Beta)OCaml (Beta)Pascal (Beta)Perl (Beta)PHPPowerShell (Beta)Prolog (Beta)PureScript (Beta)PythonR (Beta)RacketRaku (Beta)Reason (Beta)RISC-V (Beta)RubyRustScalaShellSolidity (Beta)SQLSwiftTypeScriptVB (Beta)
Show only mine

Kumite (ko͞omiˌtā) is the practice of taking techniques learned from Kata and applying them through the act of freestyle sparring.

You can create a new kumite by providing some initial code and optionally some test cases. From there other warriors can spar with you, by enhancing, refactoring and translating your code. There is no limit to how many warriors you can spar with.

A great use for kumite is to begin an idea for a kata as one. You can collaborate with other code warriors until you have it right, then you can convert it to a kata.

Ad
Ad

Constants should be in capital.

Code
Diff
  • import zlib
    L='L1'
    exec(str(zlib.decompress(bytes("xÚMP=oÂ0ý+¯YXC[u@B,•h§v©ÄâØpqìÈw.Eÿ½—€DåÅzw÷¾„~eL×8·ª±Í¾Ÿ\"ªº_UØ1HÛÒy!³‚™¤äXÕ¬>wM\nŒj‰¶Ú¤®ÏČ`òž ʎ9wI-äàyè/>‚;lr´ØÅÏ+¬;Ãx~yxÜyBð‘jœ¼Rˆ—@|¥V 8œrRCm‰v´[ù2IL¢5½9ߗ‚»’ë`–'zbä~·À‡ïú@àÊÔÂ߅e$ßUããT²½&»¼§Lc¦,ø1ٛ(ð¼„KPìˆÔ\nEœRvЀܓõ&¨Ù£t£~C­©’–òšNÿZ‚5QÇklÌäý½uí­q÷k¼‘Ìö@ö/Õ¸ª",encoding=L)),L))
    • import zlib
    • l='L1'
    • exec(str(zlib.decompress(bytes("xÚMP=oÂ0ý+¯YXC[u@B ,•h§v©ÄâØpqìÈw.Eÿ½—€DåÅzw÷¾„~eL×8·ª±Í¾Ÿ\"ªº_UØ1HÛÒy!³‚™¤äXÕ¬>wM
    • Œj‰¶Ú¤®ÏČ`òž ʎ9wI-äàyè/>‚;lr´ØÅÏ+¬;Ãx~yxÜyBð‘jœ¼Rˆ—@ |¥V 8œrRCm‰v´[ù2IL¢5½9ߗ ‚»’ë`–'zbä~·À‡ïú@àÊÔÂ߅e$ßUããT²½&» ¼§Lc¦,ø1ٛ(ð¼„KPìˆÔ
    • EœRvЀܓõ&¨Ù£t£~C­©’–òšNÿZ‚5QÇklÌäý½uí­q÷k¼‘Ìö@ö/Õ¸ª",encoding=l)),l))
    • L='L1'
    • exec(str(zlib.decompress(bytes("xÚMP=oÂ0ý+¯YXC[u@B ,•h§v©ÄâØpqìÈw.Eÿ½—€DåÅzw÷¾„~eL×8·ª±Í¾Ÿ\"ªº_UØ1HÛÒy!³‚™¤äXÕ¬>wM
    • Œj‰¶Ú¤®ÏČ`òž ʎ9wI-äàyè/>‚;lr´ØÅÏ+¬;Ãx~yxÜyBð‘jœ¼Rˆ—@ |¥V 8œrRCm‰v´[ù2IL¢5½9ߗ ‚»’ë`–'zbä~·À‡ïú@àÊÔÂ߅e$ßUããT²½&» ¼§Lc¦,ø1ٛ(ð¼„KPìˆÔ
    • EœRvЀܓõ&¨Ù£t£~C­©’–òšNÿZ‚5QÇklÌäý½uí­q÷k¼‘Ìö@ö/Õ¸ª",encoding=L)),L))
Code
Diff
  • import java.util.Arrays;
    
    import java.math.BigInteger;
    
    public class MaxNumber {
        public static BigInteger print(long number) {
            int[] digits = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
          
            for (char digit : Long.toString(number).toCharArray()) {
              digits[digit - '0']++;
            }
          
            BigInteger sum = BigInteger.ZERO;
            int i = 9;
          
            while(i >= 0) {
              if (digits[i] == 0) {
                i--;
              } else {
                digits[i]--;
                sum = sum.multiply(BigInteger.TEN).add(BigInteger.valueOf(i));
              }
            }
          
            return sum;
        }
    }
    • import java.util.Arrays;
    • import java.math.BigInteger;
    • public class MaxNumber {
    • public static long print(long number) {
    • public static BigInteger print(long number) {
    • int[] digits = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    • for (char digit : Long.toString(number).toCharArray()) {
    • digits[digit - '0']++;
    • }
    • long sum = 0;
    • BigInteger sum = BigInteger.ZERO;
    • int i = 9;
    • while(i >= 0) {
    • if (digits[i] == 0) {
    • i--;
    • } else {
    • digits[i]--;
    • sum = (10 * sum) + i;
    • sum = sum.multiply(BigInteger.TEN).add(BigInteger.valueOf(i));
    • }
    • }
    • return sum;
    • }
    • }
Fundamentals
Mathematics

You don't need code for this.

Code
Diff
  • from operator import mul as m
    • m=lambda a,b:a*b
    • from operator import mul as m
Code
Diff
  • using System.Collections.Generic;
    using System.Linq;
    
    //using FactorSort = (int PrimeFactor, int Exponent);
    
    public static class PrimeFactorization
    {
        public static IList<(int PrimeFactor, int Exponent)> Factorize(int number)
        {
            List<(int PrimeFactor, int Exponent)> factors = new()
            {
                DetermineFrequency(ref number, 2)
            };
            for (int i = 3; i*i <= number; i += 2)
                factors.Add(DetermineFrequency(ref number, i));
            if (number > 1) factors.Add((number, 1));
            factors.RemoveAll(f => f.Exponent == 0);
            return factors;
        }
    
        private static (int PrimeFactor, int Exponent) DetermineFrequency(ref int number, int factor)
        {
            var exponent = 0;
            while (number % factor == 0)
            {
                exponent++;
                number /= factor;
            }
            return (factor, exponent);
        }
    }
    • using System.Collections.Generic;
    • using System.Linq;
    • //using FactorSort = (int PrimeFactor, int Exponent);
    • public static class PrimeFactorization
    • {
    • public static IEnumerable<(int PrimeFactor, int Exponent)> Factorize(int number)
    • public static IList<(int PrimeFactor, int Exponent)> Factorize(int number)
    • {
    • List<(int PrimeFactor, int Exponent)> factors = new()
    • {
    • DetermineFrequency(ref number, 2)
    • };
    • for (int i = 3; i*i <= number; i += 2)
    • factors.Add(DetermineFrequency(ref number, i));
    • if (number > 1) factors.Add((number, 1));
    • factors.RemoveAll(f => f.Exponent == 0);
    • return factors;
    • }
    • private static (int PrimeFactor, int Exponent) DetermineFrequency(ref int number, int factor)
    • {
    • SortedDictionary<int, int> factors = new(); //[];
    • for (int i = 2; i <= number / 2 + 1; i++)
    • var exponent = 0;
    • while (number % factor == 0)
    • {
    • while (number % i == 0)
    • {
    • factors[i] = factors.GetValueOrDefault(i, 0) + 1;
    • number /= i;
    • }
    • exponent++;
    • number /= factor;
    • }
    • if (number > 1) factors[number] = factors.GetValueOrDefault(number, 0) + 1;
    • return from factor in factors select (factor.Key, factor.Value);
    • return (factor, exponent);
    • }
    • }
Code
Diff
  • bool Nand(bool a, bool b) {
        return 1 - (a * b);
    }
    
    bool Not(bool a) {
        return Nand(a, a);
    }
    
    bool And(bool a, bool b) {
        return Not(Nand(a, b));
    }
    
    bool Nor(bool a, bool b) {
        return And(Not(a), Not(b));
    }
    
    bool Or(bool a, bool b) {
        return Not(Nor(a, b));
    }
    
    bool Xor(bool a, bool b) {
        return And(Or(a, b), Not(And(a, b)));
    }
    
    bool Buffer(bool a) {
        return Not(Not(a));
    }
    
    bool Xnor(bool a, bool b) {
        return Not(Xor(a, b));
    }
    
    bool False(bool a) {
        return And(a, Not(a));
    }
    
    bool True(bool a) {
        return Or(a, Not(a));
    }
    • bool Nand(bool a, bool b){
    • return 1-(a*b);
    • bool Nand(bool a, bool b) {
    • return 1 - (a * b);
    • }
    • bool Not(bool a){
    • return Nand(a, a);
    • bool Not(bool a) {
    • return Nand(a, a);
    • }
    • bool And(bool a, bool b){
    • return Not(Nand(a, b));
    • bool And(bool a, bool b) {
    • return Not(Nand(a, b));
    • }
    • bool Nor(bool a, bool b){
    • return And(Not(a), Not(b));
    • bool Nor(bool a, bool b) {
    • return And(Not(a), Not(b));
    • }
    • bool Or(bool a, bool b){
    • return Not(Nor(a, b));
    • bool Or(bool a, bool b) {
    • return Not(Nor(a, b));
    • }
    • bool Xor(bool a, bool b){
    • return And(Or(a, b), Not(And(a, b)));
    • bool Xor(bool a, bool b) {
    • return And(Or(a, b), Not(And(a, b)));
    • }
    • bool Buffer(bool a){
    • return Not(Not(a));
    • bool Buffer(bool a) {
    • return Not(Not(a));
    • }
    • bool Xnor(bool a, bool b){
    • return Not(Xor(a, b));
    • bool Xnor(bool a, bool b) {
    • return Not(Xor(a, b));
    • }
    • bool False(bool a){
    • return And(a, Not(a));
    • bool False(bool a) {
    • return And(a, Not(a));
    • }
    • bool True(bool a){
    • return Or(a, Not(a));
    • bool True(bool a) {
    • return Or(a, Not(a));
    • }