![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
tsbyj
这个作者很懒,什么都没留下…
展开
-
如何不进行逻辑判断来比较两个数的大小
如何不进行逻辑判断,输出两个数之间比较大的那个数字,不能使用if,三目运算符等方法。方法如下:#include #include int main(){ int a=10; int b=20; printf("%d",((a+b)+abs(a-b))/2); return 0;}代码很简单,原理也很简单,abs(a-b)结果为a与b之间的差值,原创 2015-07-26 23:14:00 · 644 阅读 · 0 评论 -
使用欧拉筛法求素数和
上一次写到了厄拉多塞筛法,说到厄拉多塞筛法随着计算上限的成倍增加,计算时间也会成倍增加。这次的欧拉筛法在时间这方面会比厄拉多塞筛法好很多。原创 2015-08-24 17:22:47 · 893 阅读 · 0 评论 -
如何判断一个自然数是否为素数
判断一个自然数是否为素数,最先想到的是根据素数的定义,对自然数n,求2到n-1之中是否有某个数可以被n整除,如果没有则可判定其为素数,如果有则为合数。实际判断中,并不需要判断这么多数,只要判断2到根号n之间的自然数即可。代码如下:#include #include using namespace std;int main(){ int n; while(ci原创 2015-08-02 11:36:06 · 1022 阅读 · 0 评论 -
使用厄拉多塞筛法计算素数的和
求N以内所有素数的和,最普通的方法是对N以内所有自然数进行一次是否为素数的判断,然后将所有素数相加。然而对某个自然数s是否为素数的判断是相当费时间的,需要判断其是否可以整除0到s^0.5之间的所有自然数,如果s很大的话,这将相当耗时。两千多年前的数学家厄拉多塞提出的厄拉多塞筛法可以一定程度上减少计算素数和时的工作量。维基百科上埃拉托斯特尼筛法词条中有一个很直观的示意图,如下:原创 2015-08-03 11:52:45 · 1492 阅读 · 0 评论