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