1.首先我们要知道什么是素数
素数也就是质数:只能被1和他本身整除
2.怎么用代码来实现
第一种方法:
//打印100-200的素数
int main()
{
int i = 0;
for (i = 100; i <= 200; i++)
{
//判断i是否为素数
//2 -> i-1 之间的数字去试除i,看能否整除
int j = 0;
for (j = 2; j < i; j++) //产生2 -> i-1 之间的数字
{
if (i % j == 0)
{
break;
}
}
if (i == j)
{
printf("%d ", i);
}
}
return 0;
}
第二种方法
//打印100-200的素数
int main()
{
int i = 0;
int count = 0;//素数的个数
for (i = 100; i <= 200; i++)
{
int j = 0;
int flag = 1;//flag为1是i是素数
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag==1)
{
printf("%d ", i);
count++;
}
}
printf("\ncount=%d\n", count);
return 0;
}
第三种方法(效率更高):
//打印100-200的素数
//m = a * b a和b中一定至少有一个数字是 <= 开平方m的
//比如16 = 2 * 8 = 4 * 4 (2和4都是小于等于开平方16)
//sqrt是开平方的函数
//sqrt函数要引用#include <math.h>
#include <math.h>
int main()
{
int i = 0;
int count = 0;
for (i = 101; i <= 200; i+=2)//偶数肯定不是质数,所以直接在奇数里找
{
int j = 0;
int flag = 1;
for (j = 2; j <= sqrt(i); j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
{
printf("%d ", i);
count++;
}
}
printf("\ncount=%d\n", count);
return 0;
}
更多推荐
用C语言打印100-200之间的素数(新手入门)
发布评论