题目名称:打印素数(以前叫质数)
题目内容:写一个代码:打印100~200之间的素数
素数:大于的1的只能被1和它本身整除的整数。
思路:1.试除法:
1⃣️2~i-1:
#include <stdio.h>
int main()
{
int i = 0;
int count = 0;
for(i=100;i<=200;i++)
{
int n = 0;
for(n=2;n<i;n++)
{
if(i%n == 0)
{
break;
}
}
if(n==i)
{
printf("%d ",i);
count++;
}
}
printf("\n%d\n",count);
return 0;
}
2⃣️2~sqrt(i) //i=a*b(a和b当中至少有一个小于等于sqrt(i) 由不等式知sqrt(i)<=i/2
#include <stdio.h>
#include <math.h>
int main()
{
int i = 0;
int count = 0;
for(i=100;i<=200;i++)
{
int n = 0;
//gcc引用头文件math.h,编译时需要在test.c后面加上-lm
for(n=2;n<=sqrt(i);n++)
{
if(i%n == 0)
{
break;
}
}
if(n>sqrt(i))
{
printf("%d ",i);
count++;
}
}
printf("\n%d\n",count);
return 0;
}
3⃣️2~i/2
#include <stdio.h>
int main()
{
int i = 0;
int count = 0;
for(i=100;i<=200;i++)
{
int n = 0;
for(n=2;n<=i/2;n++)
{
if(i%n == 0)
{
break;
}
}
if(n>i/2)
{
printf("%d ",i);
count++;
}
}
printf("\n%d\n",count);
return 0;
}