李洋疯狂C语言之求素数的方法
2017-07-13 00:14
141 查看
今天课上李洋老师讲到求素数时,讲了一种新的方法,一开始听得我一脸懵逼,但当我理解的时候,眼前一亮,老师的算法省去了不少步骤,话不多说,附上题目:求100到200之间的素数。
输入:无
计算: 求素数
输出: 输出素数 每4个一行 每个数占4位
代码:
当 i 越大,这种方式的优越性就越明显,举个栗子,当 i 取10000时,开方为100,也就是说只要考虑2到100就可以了,而我会的方法就要考虑2到10000,少的可不是一点点。
输入:无
计算: 求素数
输出: 输出素数 每4个一行 每个数占4位
代码:
void isPrime(int i) { int j; int flag = 0; int count = 0; for (i = 100; i <= 200; i++) { int k = sqrt(i); flag = 0; for (j = 2; j <= k; j++) /*只要考虑开方之前的数*/ { if (0 == i % j) { flag = 1; break; // 只会跳出一层循环 } } if(1 != flag) { if (0 == count++ % 4) putchar ('\n'); printf ("%4d", i); } } putchar ('\n'); }
当 i 越大,这种方式的优越性就越明显,举个栗子,当 i 取10000时,开方为100,也就是说只要考虑2到100就可以了,而我会的方法就要考虑2到10000,少的可不是一点点。
相关文章推荐
- c语言:实现对于给定的正整数N,依次打印出小于等于N的所有素数。两种方法及其优化
- C语言求素数/质数最高效的方法
- C语言实现打印1000以内素数的三种基本方法
- c语言求素数的方法——总结
- C语言求素数的两种方法
- 李洋疯狂C语言之初
- 李洋疯狂C语言之编程实现统计某年某月份的天数
- 李洋疯狂C语言之break和continue的区别
- C语言实现2~n之间的素数判断的三种方法
- 李洋疯狂C语言之用递归解决李白喝酒问题(二)
- C语言写素数的几种方法(菜鸟级别的)
- 李洋疯狂C语言之关于自增自减遇到的一些问题
- 李洋疯狂C语言之有关“you are come from shanghai”逆序(二)
- 用C语言打印101~200之间的素数(两种方法)
- 李洋疯狂C语言之选择排序
- 李洋疯狂C语言之用递归解决李白喝酒问题(附填空题解法)
- c语言:实现对于给定的正整数N,依次打印出小于等于N的所有素数。两种方法及其优化
- 李洋疯狂C语言之冒泡排序法
- 李洋疯狂C语言之合法帧
- 李洋疯狂C语言之将”you are come from shanghai ”倒置为”shanghai from come are you”,将句子中的单词位置倒置,而不改变单词内部结构