废话不多述,直接开整。
简单版:
int main()
{
int count = 0;
for (int i = 100; i <= 200; i++)
{
//拿2 - i-1 之间的数字去试除i;
int flag = 1;
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
{
printf("%d ", i);
count++;
}
}
printf("\n数目:%d\n", count);
return 0;
}
优化版:
如果a乘以b=m
a和b至少有一个数字是小于等于开平方m的
只要有一个数字能把m整除另外一个可以整除的数就不必整除;
比如说16 = 2 * 8 = 4 * 4
所以我们只要找2到开平方m之间有没有一个数可以被整除就可以被证明
如果在开平方的里面都找不到一个数可以整除,后面的数也不可能被整除
int main()
{
int n;
for (int i = 100; i <= 200; i++)
{
int flag = 1;
for (int j = 2; j <= sqrt(i); j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
{
printf("%d", i);
}
}
return 0;
}