题目
找到100~200之间的素数
代码
方法一:试除法
思路:素数即质数,除了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 flag = 1;//假设是素数
int j = 0;
for (j = 2; j < i; j++)
{
if (i % j == 0)
flag = 0;//不是素数
}
if (flag == 1)
{
printf("%d ", i);
count++;
}
}
printf("\ncount=%d ", count);
return 0;
}
方法二
①因为偶数肯定不是素数,所以可以排除掉偶数。
②若
,则m、n中至少有一个数字是
,因为若两个数都
,则乘积会大于
,这显然是错误的。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
int count = 0;
for (i = 101; i <= 200; i+=2)
{
int flag = 1;//假设是素数
int j = 0;
for (j = 2; j <= sqrt(i); j++)//sqrt是开平方的函数
{
if (i % j == 0)
flag = 0;//不是素数
}
if (flag == 1)
{
printf("%d ", i);
count++;
}
}
printf("\ncount=%d ", count);
return 0;
}