-
P1075 [NOIP2012 普及组] 质因数分解
n = int(input())
for i in range(2,n+1):
if n%i==0:
smaller_prime=i
break
larger_prime=n//smaller_prime
print(larger_prime)
-
P1217 [USACO1.5] 回文质数 Prime Palindromes
from math import sqrt
def prime(n):
if n<=1:
return False
if n==2:
return True
if n%2==0:
return False
for i in range(3,int(sqrt(n))+1,2):
if n%i==0:
return False
return True
def palindromes(m):
s=str(m)
return s==s[::-1]
def generate_palindromes(start,end):
def create_palindrome(input_number,is_odd_length):
palindrome=input_number
if is_odd_length:
input_number//=10
while input_number>0:
palindrome=palindrome*10+(input_number%10)
input_number//=10
return palindrome
palindromes_list=[]
min_len=len(str(start))
max_len=len(str(end))
for length in range(min_len,max_len+1):
half_len=10**((length-1)//2)
upper_half_limit=10*half_len
for first_half in range(half_len,upper_half_limit):
for odd_length in [True, False]:
p=create_palindrome(first_half,odd_length)
if start<=p<=end:
palindromes_list.append(p)
elif p>end:
break
return sorted(set(palindromes_list))
a, b = map(int, input().split())
palindromes_list=generate_palindromes(a,b)
for p in palindromes_list:
if prime(p):
print(p)