namespace myjinxin
{using System;publicclassKata{publicstringTestit(string s){string result ="";for(int i =2; i < s.Length; i ++){if(IsPrime(i)) result += s[i];}return result;}publicboolIsPrime(int number){if(number <2)returnfalse;if(number %2==0)return number ==2;int boundary =(int)Math.Sqrt(number);for(int i =3; i <= boundary; i +=2){if(number % i ==0)returnfalse;}returntrue;}}}
答案2:
namespace myjinxin
{using System;using System.Linq;publicclassKata{publicBooleanIsPerfect(Int32 Input){for(var index =3; index <= Math.Sqrt(Input); index +=2){if(Input % index ==0){returnfalse;}}return Input <3? Input ==2: Input %2==1;}publicStringTestit(String Input){return String.Join("", Input.ToCharArray().Where((Element, Index)=>IsPerfect(Index)));}}}
答案3:
namespace myjinxin
{using System;using System.Linq;publicclassKata{publicStringTestit(String Input){return String.Join("", Input.ToCharArray().Where((Element, Index)=>{for(var index =3; index <= Math.Sqrt(Index); index +=2){if(Index % index ==0){returnfalse;}}return Index <3? Index ==2: Index %2==1;}));}}}
答案4:
namespace myjinxin
{using System;using System.Linq;publicclassKata{publicstringTestit(string s){string res ="";for(int i =2; i < s.Length; i +=1){if(IsPrime(i)){
res += s[i];}}return res;}privatestaticboolIsPrime(int n){if(n <=1)returnfalse;if(n <=3)returntrue;if(n %2==0|| n %3==0)returnfalse;for(int i =5; i * i <= n; i +=6)if(n % i ==0|| n %(i +2)==0)returnfalse;returntrue;}}}
namespace myjinxin
{using System;using System.Linq;using System.Collections;using System.Collections.Generic;publicclassKata{publicstatic IEnumerable<int>PrimesBelow(int n){if(n >2)yieldreturn2;if(n >3)yieldreturn3;if(n <=5)yieldbreak;int n6 = n %6;int c = n6 >1?1:0;
n = n6 ==1? n -1: n +(6- n6)%6;BitArray s =newBitArray(n /3,true){[0]=false};int r =((int)Math.Sqrt(n))/3+1;for(int i =0; i < r; i++){if(s[i]){int k =(3* i +1)|1;for(int j = k * k /3; j < n /3; j +=2* k) s[j]=false;for(int j =(k * k +4* k -2*k*(i %2))/3; j < n /3; j +=2* k) s[j]=false;yieldreturn k;}}for(int i = r; i < n /3- c; i++){if(s[i])yieldreturn(3* i +1)|1;}}publicstringTestit(string s)=>string.Concat(PrimesBelow(s.Length).Select(i => s[i]));}}
答案7:
using System.Linq;namespace myjinxin
{publicclassKata{publicstringTestit(string s){returnstring.Concat(s.Where(IsPrimeIndex));}publicboolIsPrimeIndex(char c,int n){return n >1&&
Enumerable
.Range(2, n -2).All(candidate => n%candidate >0);}}}
namespace myjinxin
{using System;using System.Text;publicclassKata{publicstringTestit(string input){StringBuilder result =newStringBuilder();for(int i =0; i < input.Length; i++){if(IsPrimeNumber(i)){
result.Append(input[i]);}}return result.ToString();}privatestaticboolIsPrimeNumber(int number){if(number <=2){return number ==2;}if(number%2==0){returnfalse;}int limit =(int)Math.Sqrt(number);for(int i =3; i <= limit; i++){if(number%i ==0){returnfalse;}}returntrue;}}}
答案10:
namespace myjinxin
{using System;publicclassKata{publicstringTestit(string s){int i =3, j =0, l = s.Length;char[] chArr =newchar[l];if(l >2) chArr[j++]= s[2];while(i < l){int n;for(n =3; n < i; n +=2){if(i % n ==0)break;}if(i == n) chArr[j++]= s[i];
i +=2;}returnnewstring(chArr).Substring(0, j);}}}
思维与测试:不完美?抛弃!【难度:2级】:答案1:namespace myjinxin{ using System; public class Kata { public string Testit(string s){ string result = ""; for(int i = 2; i < ...