素数打印的方法
质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。
1.求100——200的素数,并将其打印出来
//打印素数
//写一个代码:打印100~200之间的素数
#include<stdio.h>
int main()
{
int num = 100;
for (num = 100; num <= 200; num++)
{
int flag = 0;
for (int i = 2; i <= (num / 2); i++)
{
if (num%i == 0)
{
flag = 1;
break;
}
}
if (flag == 0)
{
printf("%d ", num);
}
}
return 0;
}
优化方法:
1.因为素数总是在奇数中出现,所以可以只在奇数中去判断是否为素数,这样做的好处为提高了效率。
2.一个数的乘数有两种可能,例如13也等于31,为了避免重复,可以将这个数除以2
优化如下:
#include<stdio.h>
int main()
{
int num = 100;
for (num = 101; num <= 200; num+=2)
{
int flag = 0;
for (int i = 2; i <= (num / 2); i++)
{
if (num%i == 0)
{
flag = 1;
break;
}
}
if (flag == 0)
{
printf("%d ", num);
}
}
return 0;
}
3.实现一个函数,判断一个数是不是素数。
利用上面实现的函数打印100到200之间的素数。
//实现一个函数,判断一个数是不是素数。
//利用上面实现的函数打印100到200之间的素数。
#include<stdio.h>
void PrimeNumber(int a)
{
int flag = 0;
for (int i = 2; i <= a/2; i++)
{
if (a % i == 0)
{
flag = 1;
break;
}
}
if (flag==0)
{
printf("%d ", a);
}
}
int main()
{
for (int i = 101; i < 200; i+=2)
{
PrimeNumber(i);
}
return 0;
}