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函数是判断质数的函数