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))
互相学习,互相指教。