打印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 )