问题标题: 酷町堂:1062

0
0

0
已采纳
万睿言
万睿言
初级光能
初级光能

首先先看一下思路:

思路一:O(n*t*sqrt(j))  超时
遍历n个数 O(n)
    对于第i个数t
    for j from 1 to t   O(t)
        if(Judge(j)&&t%j==0) 此时是t的质因数 O(sqrt(j)) 
            求出t的最大值
    循环求tmp的最大值
    同时更新最大质因数对应的数字 ans

思路二:O(n*sqrt(t)*sqrt(j)) 不会超时 
遍历n个数 O(n)
    对于第i个数t
    for j from 1 to sqrt(t)   O(sqrt(t))
        if(Judge(j)&&t%j==0) j此时是t的质因数
        if(Judge(t/j)&& t%j==0) t/j此时是t的质因数
            求出t的最大质因数tmp 
    循环求tmp的最大值
    同时更新最大质因数对应的数字 ans 

核心:

  循环遍历1到n{
        输入t
        循环遍历1到sqrt(t){
            如果t是j的倍数{
                如果j是质数{
                    tmp取j的最大值
                }
                如果t÷j是质数{
                    tmp取t÷j的最大值
                }
            } 
            如果(tmp大于maxn){
                maxn等于tmp
                ans等于t
            }
        }
    }

Judge函数是判断质数的函数

我要回答