实现素数问题我们首先要明确何为素数:又称质数,是指在大于1的自然数中,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数(质数)。比1大但不是素数的数称为合数,1和0既非素数也非合数。
接下来我们用C语言的for循环嵌套来显示100~200之间的素数。
#include<stdio.h>
int main()
{
int a, b;
int m;
for (a = 101;a <= 200;a++)
{
for (b = 2;b < a;b++)
{
m = 1;
if (a % b == 0)
{
m;
break;
}
else
{
m = 0;
}
}
if (m == 0)
{
printf("%d是素数\n", a);
}
else
{
printf("%d不是素数\n", a);
}
}
}
我们的解决问题的思路是利用嵌套 for 循环,然后用一个全局变量m是否为 1 来判定a是否为素数。要注意的是在全局定义了 m 以后我们要在第二个 for 循环里面对其进行赋值。假设我们在外部进行赋值就会出现以下结果:
我们对代码进行调试以后发现,造成这样的原因是因为代码在执行完 m = 0 这条语句以后,m的值就一直为0,因为我们没有对 m 在循环内进行重新赋值,所以就导致了不管 a 是否为素数,结果都会输出为素数。所以正确的解决办法就是在第二个for循环里面我们进行对 m 进行初始化,使其每次进入循环的值都为 1 。这样就能成功地利用两层for循环来解决100~200之间的素数问题。