生成X到Y之间的素数
#include <stdio.h>
int main()
{
//生成X到Y的shu
printf("请输入范围:");
int a = 0, b = 0, count = 0;
scanf_s("%d %d", &a, &b);
printf("素数有:");
for (int i = a; i <= b; i++)
{
//判断是否是素数
for (int j = 2; j <= i/2; j++) //i/(生成2到(i/2)的数)只要有一个整除就不是素数
{
if (i % j == 0)
{
break;
}
else
{
printf("%d ", i);
break;
}
}
}
return 0;
}
优化:引入一个变量(fake),以fake值的变化来表示是否为素数
#include <stdio.h>
#include <math.h>
int main()
{
//生成X到Y的shu
printf("请输入范围:");
int a = 0, b = 0;
scanf_s("%d %d", &a, &b);
printf("素数有:");
for (int i = a; i <= b; i++)
{
//判断是否是素数
int fake = 1;
for (int j = 2; j <= sqrt(i); j++)
{
if (i % j==0)
{
fake = 0;
break;
}
}
if ( fake==1)
{
printf("%d ", i);
}
}
return 0;
}
优化:自定义函数的返回值的真假(1/0)来判断
#include <stdio.h>
#include <math.h>
int verdict(int x)
{
for (int j = 2; j <= sqrt(x); j++)
{
if (x % j == 0)
{
return 0;
}
else
{
return 1;
}
}
}
int main()
{
//生成X到Y的shu
printf("请输入范围:");
int a = 0, b = 0, count = 0;
scanf_s("%d %d", &a, &b);
printf("素数有:");
for (int i = a; i <= b; i++)
{
//判断是否是素数
if (verdict(i))
{
printf("%d ",i);
}
}
return 0;
}