def enc(k, m)

  code_a = 97               

  kosu = 26                  


  leng = m.length            

  a = m.unpack("C*")        

  b = Array.new(leng)        

  sa = Array.new(leng)

  for i in 0..leng-1

   sa[i] = a[i] - code_a     

   if 0 <= sa[i] && sa[i] < kosu

    for n in 0..k-1 

     if (sa[i] + (26*n))%3 == 0

      sa[i] = (sa[i] + (26*n)) /3

     end

    end

   end

   b[i] = sa[i] + code_a     

  end

  c = b.pack("C*")            

  return(c)

end





k = 3


hirabun = gets.chomp           

angobun = enc(k, hirabun)      

puts(angobun)                   


이게 복호화 프로그램이거든?


암호화프로그램은, 알파벳소문자 a,b,c,d,....w,x,y,z를 0,1,2,3,....,25로 번호매김해서 곱하기3씩 한 위치로 바꿔준건데


이걸 다시 복호화 프로그램을 만들려하니까


아무리생각해도 저 식에서 뭐가 틀렸는지 모르겠는데


abcdefghijklmnopqrstuvwxyz를 암호화 프로그램에 넣었더니 adgjmpsvybehknqtwzcfilorux가 되는데 이걸 다시 위에 써놓은 프로그램에 쳐넣으니까 adgjmpsvybehknqtwzcfilorux(abcdefg....xyz가 나와야되는데)가 나오네


도대체 뭐가틀린거야...? 아무리 눈씻고 찾아봐도 틀린곳이 없는데




p.s. %, /할때 k로 하니까 짜증나게 zerodivisi가 뜨는데 어차피 저거 k가 0아닐때만 하게되는데도 왜 이딴게 뜨는거지? 안뜨게할수없어?