打印出1~100内的素数
-
如何判定一个数是素数
- 只有两个正因数(1和自己)的自然数即为素数。
- 质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数)。大于1的自然数若不是素数,则称之为合数(也称为合成数)。
-
如何用编程思想解决
- 分析:计算机的优势就是计算速度快,因此只需制定计算规则,其它的交给计算机吧。
- 方法一: 暴力求解法:
- 方法二:
int main()
{
int i = 100;
for (i = 100; i <= 200; i++)
{
int flag = 1;
for (int j = 2; j <= i - 1; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
{
printf("%d ", i);
}
}
return 0;
#include <math.h>
打印100~200间的素数
int main()
{
int i = 0;
int j = 0;
for (i = 100; i <= 200; i++)
{
int flag = 1; //标记flag=1表示循环中的数i为素数,flag=0表示非素数
for (j = 2; j <= sqrt(i); j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1) //打印已标记为素数的数(即flag = 1的 i 值)
{
printf("%d ", i);
}
}
return 0;
}
判定素数的方法有很多种,以上只是列出暴力法,后续再添加其它优化的方法