素数:也称质数,大于1的自然数中,除了1和他本身之外不再有其他因数的自然数
方式一
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
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(j == i)
{
count++;
printf("%d ",j);
}
}
printf("\n一共有%d个素数\n",count);
return 0;
}
代码优化:
方式二
开平方,缩小查找范围
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
int count = 0;
for(i=100;i<=sqrt(i);i++)
{
int j = 0;
for(j=2;j<i;j++)
{
if(i%j == 0)
{
break;
}
}
if(j>sqrt(i))
{
count++;
printf("%d ",j);
}
}
printf("\n一共有%d个素数\n",count);
return 0;
}
方式三
加二跳过偶数
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int i = 0;
int count = 0;
for(i=101;i<=200;i+=2)
{
int j = 0;
for(j=2;j<i;j++)
{
if(i%j == 0)
{
break;
}
}
if(j == i)
{
count++;
printf("%d ",j);
}
}
printf("\n一共有%d个素数\n",count);
return 0;
}
方式四
函数的方式
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int is_prime(int n) //is_prime判断是否为素数的函数
{
int j=0;
for(j=2;j<n;j++)
{
if(n%j == 0)
{
return 0;
}
}
return 1; //是素数返回1,不是返回0
}
int main()
{
int i;
for(i=100;i<=200;i++)
{
if(is_prime(i) == 1)
printf("%d ",i);
}
return 0;
}