习题 6.1 用筛选法求100之内的素数。

来源:互联网 发布:照片时间轴软件 编辑:程序博客网 时间:2024/06/06 06:54

C程序设计 (第四版) 谭浩强 习题 6.1 个人设计

习题 6.1 用筛选法求100之内的素数。

代码块

方法1:

#include <stdio.h>int main(){    int a[101], i, j;    for (i = 1; i <= 100; i++)        a[i] = i;    a[1] = 0;                              //把数字1剔除    for (i = 2; i <= 100; i++){        for (j = i + 1; j <= 100; j++)            if (a[i] != 0 && a[j] != 0)    //此行作用是把之前已经剔除的数字排除出去                if (a[j] % a[i] == 0)                    a[j] = 0;    }    for (j = 1; j <= 100; j++)        if (a[j] != 0)            printf("%d ", a[j]);    printf("\n");    return 0;}

方法2:

#include <stdio.h>int main(){    int a[100], i, j;    for (i=0; i<100; a[i++]=i+1);    a[0]=0;                                                                          //剔除元素1,赋值为0    for (i=1; i<100; i++)        for (j=i+1; j<100; (a[j]!=0 && a[i]!=0 && !(a[j]%a[i])) ? a[j++]=0 : j++);  //把需要剔除的元素的值都赋值为0    for (i=0; i<100; a[i]!=0 ? printf("%d ", a[i++]) : i++);                       //输出元素值不为0的    printf("\n");    return 0;}
原创粉丝点击