素数概念
一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除的数
实现思想
当我们需要判定100-200里面的自然数有多少个素数:
我们先使用一个for循环,定义i,将100-200之间的自然数进行输出,之后嵌套一个for循环,j 从2开始,小于 i ;这样如果当i % j = 0 时,就代表可以被别的自然数整除,所以不是素数,使用break跳出循环;如果 i == j,就代表没有别的因数,只有1和它本身。
举个例子看看吧~
//例如:5(素数)
i = 5;j 刚开始是2,j < 5;
5%2 != 0;j++; 接着执行循环;
直到当 j = 5 时,i % j = 0;将 i 输出,并且count+1。
//例如:4(不是素数)
i = 4;j 刚开始是2,j < 4;j++;
但是4%2 == 0;所以break,跳出循环语句;
执行 j ++;i 变成 3 ;4%3 !=0;接着循环;
直到当 j = 4 时,i % j = 0;将 i 输出,并且count+1。
定义一个count变量,来统计一共出现了多少个素数。
具体代码如下:
#include <stdio.h>
//素数 - 质数
//只能被1和它本身整除
int main()
{
int i=0;
int count=0;//可以用来统计素数的个数
for(i=100;i<=200;i++)
{
int j=0;
for(j=2;j<i;j++)
{
if (i % j ==0)
{
break;
}
}
if (i==j)
{
printf("%d ",i);//素数
count++;
}
}
printf("\n%d\n",count);
return 0;
}
另一种实现方法:定义一个flag变量,将flag = 1设为就是素数,所以在下面判断语句就是判断flag是否等于1,如果等于1就将 i 输出,如果:flag == 0,就break跳出循环。具体代码如下所示:
#include <stdio.h>
//素数 - 质数
//只能被1和它本身整除
int main()
{
int i=0;
int count=0;
for(i=100;i<=200;i++)
{
int j=0;
int flag =1;//假设i就是素数
for(j=2;j<i;j++)
{
if (i % j ==0)
{
flag=0;
break;
}
}
if (flag == 1)
{
printf("%d ",i);//素数
count++;
}
}
printf("\n%d\n",count);
return 0;
}