c语言算法-穷举法(获取素数)

穷举法:
穷举法是一种非常直接和实现起来非常简单,同时也是最耗时的一种解决方案。

一、穷举法概念

穷举法:从计算机的有限集合中,对每一个可能解进行判断,直到找到正确的答案。
使用穷举法主要是要获取有限集合,然后一一枚举获取需要的答案。


穷举法是用牺牲时间的方法来获取结果的全面性,而劣势在于由于需要对所有结果进行判断,所以效率比较低下。
穷举法常用于:数据量不是很大的运算上。

二、穷举法举例使用

例: 判断一个区间[100,200]内部的素数
1 给定集合区间
2 给定判定条件
所以满足使用穷举算法的条件


素数的概念:
例 常数n
如果n=1 或 n=2
或 n “不能整除任意 一个大于2并且小于n的整数”,那么这个数就称之为素数。


#include "stdio.h"
/*素数验证*/
int checkSuShu(int i){
    int t=2;
    for(t=2;t < i;t++){
      if(i%t ==0){
        return 0;
      }
    }
    return 1;
}

int main(){
   int a1,a2,t;
   printf("输入最小数:\n");
   scanf("%d",&a1);
   printf("输入最大数:\n");
   scanf("%d",&a2);
   if(a1>a2)
    printf("输入数据有误!\n");
    printf("区间范围%d~%d的素数为:\n",a1,a2);
   for(;a1<=a2;a1++)
   {
     t=checkSuShu(a1);
     if(t)
      printf("%d\n",a1);
   }
}

运行效果:
[root@localhost ~]#./t
输入最小数:
1
输入最大数:
11
区间范围1~11的素数为:
1
2
3
5
7
11