这段代码试图统计从2到N之间每个数字能被2到9中哪些数整除的次数。但逻辑上有问题:它统计的是每个数被整除的次数,而不是题目可能要求的“每个数字作为因子出现的次数”。 - 你的内层循环对每个num检查是否能被i整除,但这样会重复计数。例如num=6时,它同时被2和3整除,arr[2]和arr[3]都会增加,但实际题目可能只要求统计每个因子出现的次数,而不是每个数被整除的次数。 - 另外,数组arr只定义了10个元素,但i从2到9,这没问题。不过如果N很大,比如N=100,那么num=4会被2整除两次(4%2==0),但你的代码只加了一次,这取决于题目要求。你需要明确题目到底要统计什么:是每个因子在2到N的所有数中出现的总次数(比如2在4中出现两次),还是仅仅统计每个数是否被该因子整除一次。 检查你的题目要求,看看是否需要对同一个数多次统计同一个因子(例如4包含两个因子2)。如果是,你的代码需要修改内层循环的处理方式。