204. 计数质数
按照上面博客的思路:要得到自然数n以内的全部素数,必须把不大于 的所有素数的倍数剔除,剩下的就是素数。给出要筛数值的范围n,找出以内的素数。先用2去筛,即把2留下,把2的倍数剔除掉;再用下一个质数,也就是3筛,把3留下,把3的倍数剔除掉;接下去用下一个质数5筛,把5留下,把5的倍数剔除掉;不断重复下去......。
代码如下:
class Solution:
def countPrimes(self, n):
"""
:type n: int
:rtype: int
"""
prime = []
flag = []
if n <= 2:
return 0
for i in range(n+1):
if i > 2 and i % 2 == 0:
flag.append(1)
else:
flag.append(0)
i = 3
while i*i < n:
if flag[i] == 0:
j = i * i
while j <= n:
flag[j] = 1
j = j + (i+i)
i += 2
prime.append(2)
for x in range(3, n, 2):
if flag[x] == 0:
prime.append(x)
return len(prime)
412. Fizz Buzz
写一个程序,输出从 1 到 n 数字的字符串表示。
1. 如果 n 是3的倍数,输出“Fizz”;
2. 如果 n 是5的倍数,输出“Buzz”;
3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。
思路很简单,直接看代码就可以看懂。直接上代码吧。。。
class Solution2:
def fizzBuzz(self, n):
"""
:type n: int
:rtype: List[str]
"""
res = []
for x in range(1, n+1):
if x % 3 ==0 and x % 5 != 0:
res.append("Fizz")
elif x % 5 ==0 and x % 3 != 0:
res.append("Buzz")
elif x % 3 == 0 and x % 5 == 0:
res.append("FizzBuzz")
else:
res.append(str(x))
互相学习,互相指教。