您的位置:首页 > 编程语言 > C语言/C++

李洋疯狂C语言之求素数的方法

2017-07-13 00:14 141 查看
今天课上李洋老师讲到求素数时,讲了一种新的方法,一开始听得我一脸懵逼,但当我理解的时候,眼前一亮,老师的算法省去了不少步骤,话不多说,附上题目:求100到200之间的素数。

输入:无

计算: 求素数

输出: 输出素数 每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语言 李洋