蓝桥杯训练赛二-1199 问题 E: 哥德巴赫曾猜测
题目描述
德国数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数(素数对)的和。但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对
输入
输入任意的>6的正偶数(<32767)
输出
试求给出的偶数可以分解成多少种不同的素数对(注: A+B与B+A认为是相同素数对)
样例输入
1234
样例输出
25
1 N = 32777 2 primes = [0 for i in range(N)] 3 c = 0 4 isPrime = [True for i in range(N)] 5 for i in range(2, N): 6 if isPrime[i]: 7 primes[c] = i 8 c += 1 9 for j in range(c): 10 if primes[j] * i < N: 11 isPrime[i*primes[j]] = False 12 if i % primes[j] == 0: 13 break 14 15 n = int(input()) 16 sum = 0 17 for i in range(c): 18 if primes[i] >= n: 19 break 20 if isPrime[n - primes[i]] and primes[i] <= n - primes[i]: 21 sum += 1 22 23 print(sum)
浙公网安备 33010602011771号