在Python 3中为Codechef制作更快的INTEST解决方案

时间:2015-06-11 14:32:01

标签: python performance python-3.x

我在Python 3中为INTEST problem on Codechef编写了一个程序(包括在内)。该程序在Python 3中花费了大量时间(55.76s)。相同的代码占用了C中几乎1/10的时间(4.97s)。

  

此问题的目的是验证您的方法是否正确   用于读取输入数据足以快速处理问题   标有巨大的输入/输出警告。你应该是   能够在运行时每秒处理至少2.5MB的输入数据。

     

输入

     

输入以两个正整数n k(n,k <= 107)开始。下一个   n行输入包含一个正整数ti,不大于   109,每个。

     

输出

     

写一个整数到输出,表示整数ti是多少   可以被k整除。

     

实施例

     

输入: 7 3 1 51 966369 7 9 999996 11

     

输出 4

我的问题是:

  1. Python 3代码花了这么多时间或者哪行代码专门占用的时间是多少?
  2. 任何可以加速代码的修改?
  3. My CodeChef submissions with time and code

    import sys
    __author__ = 'Gourav Chawla'
    """
        Problem Code: INTEST
        Problem URL: http://www.codechef.com/problems/INTEST
        Compatability: Python 3.x
    """
    
    n, k = input().split()
    n = eval(n)
    k = eval(k)
    
    inputVar = 0
    count = 0
    
    # inputVar = [eval(x) for x in input().split()]
    
    inputVar = list(map(int, sys.stdin.readlines()))
    
    for i in inputVar:
       if i % k == 0:
           count += 1
    
    print(count)
    

1 个答案:

答案 0 :(得分:0)

嗯,结果证明是一个codechef判断问题。相同的代码在SPOJ上的时间要少得多。 Codechef时间是两位数,而SPOJ时间只有一位数。