#include<bits/stdc++.h> using namespace std; int n,x; long long sum=0; int pd(int y) { for(int i=2; i*i<=y; ++i) { if(y%i==0) return 0; } return 1; } int main() { scanf("%d",&n); if(n<2) { printf("0\n"); return 0; } else if(n==2) { printf("2\n1\n"); return 0; } for(int i=2; i<=n; ++i) { if(i%2==0&&i!=2) continue; if(sum+i>n) { printf("%d\n",x); return 0; } if(pd(i)) { printf("%d\n",i); sum+=i; x++; } } return 0; }用python
时间: 2023-12-03 19:03:10 浏览: 69
万能头文件#include&amp;lt;bits/stdc++.h&amp;gt; using namespace std;
以下是将该C++代码翻译成Python的结果:
```python
import math
n = int(input())
x = 0
sum = 0
def pd(y):
for i in range(2, int(math.sqrt(y))+1):
if y % i == 0:
return False
return True
if n < 2:
print(0)
elif n == 2:
print("2\n1")
else:
for i in range(2, n+1):
if i % 2 == 0 and i != 2:
continue
if sum + i > n:
print(x)
break
if pd(i):
print(i)
sum += i
x += 1
```
注意,由于Python的语法和C++有很大不同,所以翻译时需要进行相应的调整。
阅读全文