Created
November 23, 2014 15:06
-
-
Save aloknayak29/bb7389673c121e662bb6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "metadata": { | |
| "name": "", | |
| "signature": "sha256:8b057d67d592afe0e83e7fbb4ff3b53d4dd319ccb02a97b4bfedcfa4fe80ed2d" | |
| }, | |
| "nbformat": 3, | |
| "nbformat_minor": 0, | |
| "worksheets": [ | |
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "n = int(raw_input())\n", | |
| "while n:\n", | |
| " n = n -1\n", | |
| " h,m,s = map(int, raw_input().split(' '))\n", | |
| " fm = 0\n", | |
| " fh = 0\n", | |
| " for s in xrange(s,60):\n", | |
| " for p in pfdict[h]:\n", | |
| " if (m % p == 0 and s % p == 0):\n", | |
| " fm = fm + 1\n", | |
| " for m in xrange(m+1,60):\n", | |
| " for s in xrange(60):\n", | |
| " for p in pfdict[h]:\n", | |
| " if (m % p == 0 and s % p == 0):\n", | |
| " fh = fh + 1\n", | |
| " gcount = fm + fh\n", | |
| " for ih in xrange(h+1, 24):\n", | |
| " gcount = gcount +pfmcount[ih]**2" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "def gcd(a,b):\n", | |
| " r = a % b\n", | |
| " while r > 0:\n", | |
| " a, b, r = b, r, b%r\n", | |
| " return b\n", | |
| "n = int(raw_input())\n", | |
| "while n:\n", | |
| " n = n -1\n", | |
| " h,m,s = map(int, raw_input().split(' '))\n", | |
| " fm = 0\n", | |
| " dfh = 0\n", | |
| " acount = 0\n", | |
| " bcount = 0\n", | |
| " gcount = 0\n", | |
| " for ls in xrange(s,60):\n", | |
| " for p in pfdict[h]:\n", | |
| " if (m % p == 0 and ls % p == 0):\n", | |
| " fm = fm + 1\n", | |
| " \n", | |
| " dfh = pfmcount[h]*len([e for e in pfms[h] if e >= m+1])\n", | |
| "# print 'dfh',dfh\n", | |
| "# for im in xrange(m+1,60):\n", | |
| "# for ls in xrange(1,60):\n", | |
| "# for p in pfdict[h]:\n", | |
| "# if (im % p == 0 and ls % p == 0):\n", | |
| "# print im,ls,p\n", | |
| "# fh = fh + 1\n", | |
| "# print 'fh',fh\n", | |
| " gcount = fm + dfh\n", | |
| " for ih in xrange(h+1, 24):\n", | |
| " gcount = gcount +pfmcount[ih]**2\n", | |
| "#print gcount\n", | |
| " acount = (23 - h)*3600 + (59 - m)*60 + (60 - s)\n", | |
| "#print acount\n", | |
| " bcount = acount - gcount\n", | |
| " if gcount == 0 or bcount == 0:\n", | |
| " print '%s:%s' % (gcount,bcount)\n", | |
| " else:\n", | |
| " if bcount > gcount:\n", | |
| " mgcd = gcd(bcount, gcount)\n", | |
| " else:\n", | |
| " mgcd = gcd(gcount, bcount)\n", | |
| " print '%s:%s' % (gcount/mgcd, bcount/mgcd)" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "pfmcount[5]" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 70, | |
| "text": [ | |
| "11" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 70 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "pfdict = {}\n", | |
| "pfmcount = {}\n", | |
| "for i in xrange(24):\n", | |
| " pft = tuple([j for j in xrange(i+1) if j in primes and (i % j == 0)])\n", | |
| " #print pft\n", | |
| " pfdict[i] = pft\n", | |
| " if len(pft) == 2:\n", | |
| " count = (60 / pft[0]) + (60/pft[1]) - 60/(pft[0]*pft[1])\n", | |
| " elif len(pft) == 1:\n", | |
| " count = 60 / pft[0]\n", | |
| " else:\n", | |
| " count = 0\n", | |
| " \n", | |
| " pfmcount[i] = count" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 4 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "primes = set([2,3,5,7,11,13,17,19,23])\n", | |
| "#below is \n", | |
| "pfms = {}\n", | |
| "pfmcount = {}\n", | |
| "for i in xrange(24):\n", | |
| " pft = tuple([j for j in xrange(i+1) if j in primes and (i % j == 0)])\n", | |
| " pset = set()\n", | |
| " for p in pft:\n", | |
| " pset.update(range(p,60,p))\n", | |
| " pfms[i] = sorted(list(pset))\n", | |
| " pfmcount[i] = len(pset)\n", | |
| "#pfms" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 65 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "pfms" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 73, | |
| "text": [ | |
| "{0: [],\n", | |
| " 1: [],\n", | |
| " 2: [2,\n", | |
| " 4,\n", | |
| " 6,\n", | |
| " 8,\n", | |
| " 10,\n", | |
| " 12,\n", | |
| " 14,\n", | |
| " 16,\n", | |
| " 18,\n", | |
| " 20,\n", | |
| " 22,\n", | |
| " 24,\n", | |
| " 26,\n", | |
| " 28,\n", | |
| " 30,\n", | |
| " 32,\n", | |
| " 34,\n", | |
| " 36,\n", | |
| " 38,\n", | |
| " 40,\n", | |
| " 42,\n", | |
| " 44,\n", | |
| " 46,\n", | |
| " 48,\n", | |
| " 50,\n", | |
| " 52,\n", | |
| " 54,\n", | |
| " 56,\n", | |
| " 58],\n", | |
| " 3: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57],\n", | |
| " 4: [2,\n", | |
| " 4,\n", | |
| " 6,\n", | |
| " 8,\n", | |
| " 10,\n", | |
| " 12,\n", | |
| " 14,\n", | |
| " 16,\n", | |
| " 18,\n", | |
| " 20,\n", | |
| " 22,\n", | |
| " 24,\n", | |
| " 26,\n", | |
| " 28,\n", | |
| " 30,\n", | |
| " 32,\n", | |
| " 34,\n", | |
| " 36,\n", | |
| " 38,\n", | |
| " 40,\n", | |
| " 42,\n", | |
| " 44,\n", | |
| " 46,\n", | |
| " 48,\n", | |
| " 50,\n", | |
| " 52,\n", | |
| " 54,\n", | |
| " 56,\n", | |
| " 58],\n", | |
| " 5: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55],\n", | |
| " 6: [2,\n", | |
| " 3,\n", | |
| " 4,\n", | |
| " 6,\n", | |
| " 8,\n", | |
| " 9,\n", | |
| " 10,\n", | |
| " 12,\n", | |
| " 14,\n", | |
| " 15,\n", | |
| " 16,\n", | |
| " 18,\n", | |
| " 20,\n", | |
| " 21,\n", | |
| " 22,\n", | |
| " 24,\n", | |
| " 26,\n", | |
| " 27,\n", | |
| " 28,\n", | |
| " 30,\n", | |
| " 32,\n", | |
| " 33,\n", | |
| " 34,\n", | |
| " 36,\n", | |
| " 38,\n", | |
| " 39,\n", | |
| " 40,\n", | |
| " 42,\n", | |
| " 44,\n", | |
| " 45,\n", | |
| " 46,\n", | |
| " 48,\n", | |
| " 50,\n", | |
| " 51,\n", | |
| " 52,\n", | |
| " 54,\n", | |
| " 56,\n", | |
| " 57,\n", | |
| " 58],\n", | |
| " 7: [7, 14, 21, 28, 35, 42, 49, 56],\n", | |
| " 8: [2,\n", | |
| " 4,\n", | |
| " 6,\n", | |
| " 8,\n", | |
| " 10,\n", | |
| " 12,\n", | |
| " 14,\n", | |
| " 16,\n", | |
| " 18,\n", | |
| " 20,\n", | |
| " 22,\n", | |
| " 24,\n", | |
| " 26,\n", | |
| " 28,\n", | |
| " 30,\n", | |
| " 32,\n", | |
| " 34,\n", | |
| " 36,\n", | |
| " 38,\n", | |
| " 40,\n", | |
| " 42,\n", | |
| " 44,\n", | |
| " 46,\n", | |
| " 48,\n", | |
| " 50,\n", | |
| " 52,\n", | |
| " 54,\n", | |
| " 56,\n", | |
| " 58],\n", | |
| " 9: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57],\n", | |
| " 10: [2,\n", | |
| " 4,\n", | |
| " 5,\n", | |
| " 6,\n", | |
| " 8,\n", | |
| " 10,\n", | |
| " 12,\n", | |
| " 14,\n", | |
| " 15,\n", | |
| " 16,\n", | |
| " 18,\n", | |
| " 20,\n", | |
| " 22,\n", | |
| " 24,\n", | |
| " 25,\n", | |
| " 26,\n", | |
| " 28,\n", | |
| " 30,\n", | |
| " 32,\n", | |
| " 34,\n", | |
| " 35,\n", | |
| " 36,\n", | |
| " 38,\n", | |
| " 40,\n", | |
| " 42,\n", | |
| " 44,\n", | |
| " 45,\n", | |
| " 46,\n", | |
| " 48,\n", | |
| " 50,\n", | |
| " 52,\n", | |
| " 54,\n", | |
| " 55,\n", | |
| " 56,\n", | |
| " 58],\n", | |
| " 11: [11, 22, 33, 44, 55],\n", | |
| " 12: [2,\n", | |
| " 3,\n", | |
| " 4,\n", | |
| " 6,\n", | |
| " 8,\n", | |
| " 9,\n", | |
| " 10,\n", | |
| " 12,\n", | |
| " 14,\n", | |
| " 15,\n", | |
| " 16,\n", | |
| " 18,\n", | |
| " 20,\n", | |
| " 21,\n", | |
| " 22,\n", | |
| " 24,\n", | |
| " 26,\n", | |
| " 27,\n", | |
| " 28,\n", | |
| " 30,\n", | |
| " 32,\n", | |
| " 33,\n", | |
| " 34,\n", | |
| " 36,\n", | |
| " 38,\n", | |
| " 39,\n", | |
| " 40,\n", | |
| " 42,\n", | |
| " 44,\n", | |
| " 45,\n", | |
| " 46,\n", | |
| " 48,\n", | |
| " 50,\n", | |
| " 51,\n", | |
| " 52,\n", | |
| " 54,\n", | |
| " 56,\n", | |
| " 57,\n", | |
| " 58],\n", | |
| " 13: [13, 26, 39, 52],\n", | |
| " 14: [2,\n", | |
| " 4,\n", | |
| " 6,\n", | |
| " 7,\n", | |
| " 8,\n", | |
| " 10,\n", | |
| " 12,\n", | |
| " 14,\n", | |
| " 16,\n", | |
| " 18,\n", | |
| " 20,\n", | |
| " 21,\n", | |
| " 22,\n", | |
| " 24,\n", | |
| " 26,\n", | |
| " 28,\n", | |
| " 30,\n", | |
| " 32,\n", | |
| " 34,\n", | |
| " 35,\n", | |
| " 36,\n", | |
| " 38,\n", | |
| " 40,\n", | |
| " 42,\n", | |
| " 44,\n", | |
| " 46,\n", | |
| " 48,\n", | |
| " 49,\n", | |
| " 50,\n", | |
| " 52,\n", | |
| " 54,\n", | |
| " 56,\n", | |
| " 58],\n", | |
| " 15: [3,\n", | |
| " 5,\n", | |
| " 6,\n", | |
| " 9,\n", | |
| " 10,\n", | |
| " 12,\n", | |
| " 15,\n", | |
| " 18,\n", | |
| " 20,\n", | |
| " 21,\n", | |
| " 24,\n", | |
| " 25,\n", | |
| " 27,\n", | |
| " 30,\n", | |
| " 33,\n", | |
| " 35,\n", | |
| " 36,\n", | |
| " 39,\n", | |
| " 40,\n", | |
| " 42,\n", | |
| " 45,\n", | |
| " 48,\n", | |
| " 50,\n", | |
| " 51,\n", | |
| " 54,\n", | |
| " 55,\n", | |
| " 57],\n", | |
| " 16: [2,\n", | |
| " 4,\n", | |
| " 6,\n", | |
| " 8,\n", | |
| " 10,\n", | |
| " 12,\n", | |
| " 14,\n", | |
| " 16,\n", | |
| " 18,\n", | |
| " 20,\n", | |
| " 22,\n", | |
| " 24,\n", | |
| " 26,\n", | |
| " 28,\n", | |
| " 30,\n", | |
| " 32,\n", | |
| " 34,\n", | |
| " 36,\n", | |
| " 38,\n", | |
| " 40,\n", | |
| " 42,\n", | |
| " 44,\n", | |
| " 46,\n", | |
| " 48,\n", | |
| " 50,\n", | |
| " 52,\n", | |
| " 54,\n", | |
| " 56,\n", | |
| " 58],\n", | |
| " 17: [17, 34, 51],\n", | |
| " 18: [2,\n", | |
| " 3,\n", | |
| " 4,\n", | |
| " 6,\n", | |
| " 8,\n", | |
| " 9,\n", | |
| " 10,\n", | |
| " 12,\n", | |
| " 14,\n", | |
| " 15,\n", | |
| " 16,\n", | |
| " 18,\n", | |
| " 20,\n", | |
| " 21,\n", | |
| " 22,\n", | |
| " 24,\n", | |
| " 26,\n", | |
| " 27,\n", | |
| " 28,\n", | |
| " 30,\n", | |
| " 32,\n", | |
| " 33,\n", | |
| " 34,\n", | |
| " 36,\n", | |
| " 38,\n", | |
| " 39,\n", | |
| " 40,\n", | |
| " 42,\n", | |
| " 44,\n", | |
| " 45,\n", | |
| " 46,\n", | |
| " 48,\n", | |
| " 50,\n", | |
| " 51,\n", | |
| " 52,\n", | |
| " 54,\n", | |
| " 56,\n", | |
| " 57,\n", | |
| " 58],\n", | |
| " 19: [19, 38, 57],\n", | |
| " 20: [2,\n", | |
| " 4,\n", | |
| " 5,\n", | |
| " 6,\n", | |
| " 8,\n", | |
| " 10,\n", | |
| " 12,\n", | |
| " 14,\n", | |
| " 15,\n", | |
| " 16,\n", | |
| " 18,\n", | |
| " 20,\n", | |
| " 22,\n", | |
| " 24,\n", | |
| " 25,\n", | |
| " 26,\n", | |
| " 28,\n", | |
| " 30,\n", | |
| " 32,\n", | |
| " 34,\n", | |
| " 35,\n", | |
| " 36,\n", | |
| " 38,\n", | |
| " 40,\n", | |
| " 42,\n", | |
| " 44,\n", | |
| " 45,\n", | |
| " 46,\n", | |
| " 48,\n", | |
| " 50,\n", | |
| " 52,\n", | |
| " 54,\n", | |
| " 55,\n", | |
| " 56,\n", | |
| " 58],\n", | |
| " 21: [3,\n", | |
| " 6,\n", | |
| " 7,\n", | |
| " 9,\n", | |
| " 12,\n", | |
| " 14,\n", | |
| " 15,\n", | |
| " 18,\n", | |
| " 21,\n", | |
| " 24,\n", | |
| " 27,\n", | |
| " 28,\n", | |
| " 30,\n", | |
| " 33,\n", | |
| " 35,\n", | |
| " 36,\n", | |
| " 39,\n", | |
| " 42,\n", | |
| " 45,\n", | |
| " 48,\n", | |
| " 49,\n", | |
| " 51,\n", | |
| " 54,\n", | |
| " 56,\n", | |
| " 57],\n", | |
| " 22: [2,\n", | |
| " 4,\n", | |
| " 6,\n", | |
| " 8,\n", | |
| " 10,\n", | |
| " 11,\n", | |
| " 12,\n", | |
| " 14,\n", | |
| " 16,\n", | |
| " 18,\n", | |
| " 20,\n", | |
| " 22,\n", | |
| " 24,\n", | |
| " 26,\n", | |
| " 28,\n", | |
| " 30,\n", | |
| " 32,\n", | |
| " 33,\n", | |
| " 34,\n", | |
| " 36,\n", | |
| " 38,\n", | |
| " 40,\n", | |
| " 42,\n", | |
| " 44,\n", | |
| " 46,\n", | |
| " 48,\n", | |
| " 50,\n", | |
| " 52,\n", | |
| " 54,\n", | |
| " 55,\n", | |
| " 56,\n", | |
| " 58],\n", | |
| " 23: [23, 46]}" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 73 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "pfdict = {0: (),\n", | |
| " 1: (),\n", | |
| " 2: (2,),\n", | |
| " 3: (3,),\n", | |
| " 4: (2,),\n", | |
| " 5: (5,),\n", | |
| " 6: (2, 3),\n", | |
| " 7: (7,),\n", | |
| " 8: (2,),\n", | |
| " 9: (3,),\n", | |
| " 10: (2, 5),\n", | |
| " 11: (11,),\n", | |
| " 12: (2, 3),\n", | |
| " 13: (13,),\n", | |
| " 14: (2, 7),\n", | |
| " 15: (3, 5),\n", | |
| " 16: (2,),\n", | |
| " 17: (17,),\n", | |
| " 18: (2, 3),\n", | |
| " 19: (19,),\n", | |
| " 20: (2, 5),\n", | |
| " 21: (3, 7),\n", | |
| " 22: (2, 11),\n", | |
| " 23: (23,)}" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 30 | |
| } | |
| ], | |
| "metadata": {} | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment