打印100-200之间的素数
素数,就是只能被1和自身整除的数。
步骤:
- 我们要设参数 n 遍历100-200,将他们的值放入函数IsPrime中。
- ① 创建IsPrime函数,设参数 j 来判断它是否能被整除。
② j 从2开始循环增加,j<i 时结束循环。
③ 如果 i 能被 j 整除,那么返回值为0,循环结束;
如果 j 一直循环一直没返回0,循环结束,返回值为1。 - 返回1值到main函数,判定IsPrime(n)是否等于1,“是”则输出这个 n 值。
代码:
#include<stdio.h>
#pragma warning (disable:4996)
#include<windows.h>
int IsPrime(int i)
{
int j;
for (j = 2; j < i; j++)
{
if (i%j == 0)
return 0;
}
return 1;
}
int main()
{
int n;
for (n = 100; n <= 200; n++)
{
if (IsPrime(n) == 1)
{
printf("%d\t", n);
}
}
system("pause");
}
让 j 循环的次数少,代码运行更快。
- 方法一:
给 IsPrime的 i 值除以2,j 每次增加2,循环次数就少一半。
改动函数 IsPrime:
for( j = 3 ; j < i / 2 ; j += 2 ) - 方法二
给 IsPrime的 i 值开根, j 每次增加2。
改动函数 IsPrime:
for ( j = 3 ; j < sqrt ( i ) ; j += 2 )