Это мой метод:
import math
def isPrime(n):
'Returns True if n is prime, False if n is not prime. Will not work if n is 0 or 1'
# Make sure n is a positive integer
n = abs(int(n))
# Case 1: the number is 2 (prime)
if n == 2: return True
# Case 2: the number is even (not prime)
if n % 2 == 0: return False
# Case 3: the number is odd (could be prime or not)
# Check odd numbers less than the square root for possible factors
r = math.sqrt(n)
x = 3
while x <= r:
if n % x == 0: return False # A factor was found, so number is not prime
x += 2 # Increment to the next odd number
# No factors found, so number is prime
return True
Чтобы ответить на исходный вопрос, n ** 0.5 совпадает с квадратом корня из n . Вы можете остановить проверку факторов после этого числа, потому что композитный номер будет всегда иметь коэффициент меньше или равен его квадратному корню. Это быстрее, чем просто проверка всех факторов между 2 и n для каждого n, поскольку мы проверяем меньшее количество чисел, что экономит больше времени с ростом n.
Контроллеры не должны знать о Freemarker, они должны просто выглядеть как любой другой контроллер, создавая ModelAndView
или ModelMap
, как обычно. FreeMarkerViewResolver
берет имя представления, содержащееся в ModelAndView
, и разрешает его внутри объекта Freemarker Template
, визуализируя в него вашу модель. Вся конфигурация FreeMarker является внутренней для FreeMarkerViewResolver
. Если ваш контекст не подключен правильно, то FreeMarkerViewResolver
выдаст исключение для этого эффекта, но вам, конечно, не требуется никакая конфигурация FreeMarker в ваши контроллеры.
Вам не нужен freemarkerConfig, я думаю. Просто немного измените ваш view resolver:
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value="/WEB-INF/freemarker/"/>
<property name="suffix" value=".ftl"/>
<property name="exposeSpringMacroHelpers" value="true"/>
</bean>
Теперь, если вы откроете hppt://localhost:8080/app/index, вы получите рендеринг /WEB-INF/freemarker/index.ftl