MST

星途 面试题库

面试题:Python函数返回简单值:复杂逻辑与性能优化

假设有一个大的文本文件,每行内容为一个整数。编写一个Python函数,该函数接收文件路径作为参数,读取文件内容,找出所有满足以下条件的整数:该整数大于文件中所有整数平均值的1.5倍,且该整数是质数。函数返回满足条件的整数个数(简单值)。请考虑性能优化,比如如何减少内存占用以及提高读取效率。
43.3万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
import math


def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True


def count_special_numbers(file_path):
    total = 0
    count = 0
    with open(file_path, 'r') as file:
        for line in file:
            num = int(line.strip())
            total += num
            count += 1
    if count == 0:
        return 0
    average = total / count
    target = average * 1.5
    result_count = 0
    with open(file_path, 'r') as file:
        for line in file:
            num = int(line.strip())
            if num > target and is_prime(num):
                result_count += 1
    return result_count