我们剔除100到200之间的质数,剩下的就是素数数了。利用质数的特性找到质数;质数能被整除’1和自身之外的数整除,若z为质数能整除它的数 x必定大于1小于z,z除x的结果y也是如此。所以z=x*y时;x如果等于y,z就是x的平方。如果x于y不相等,其中一定有一个数比较大,另一个数比较小。比较小的数一定会比z的开方小,x或者y一定小于等于z的开方。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string>
#include<math.h>
int main()
{
int i = 0;
int a = 0;
int count = 0;
for (i = 101; i <= 200; i+=2)//排除所有偶数,偶数必定为质数
{
for (a = 2; a <= sqrt(i); a++)//创建循环找出所有大于一小于等于i开方的数a
//sqrt()-开平方函数-库函数;头文件mat.h
{
if (i % a == 0)//判断i除a是否除进
{
break;//被除进的即是质数,跳出该次循环
}
}
if (a > sqrt(i))//当被除数a大于i的开方时,即代表该数i没有慢满足条件的被除数,该数为素数
{
count++;
printf("%d\n", i);//打印出i
}
}
printf("%d\n", count);
return 0;
}