zoukankan      html  css  js  c++  java
  • 筛选法输出100以内的所有素数

    #include <stdio.h>
    #include <math.h>
    
    int main(void)
    {
    	int i;
    	int j;
    	int a[101];                // 为直观表示,各元素与下标对应,0号元素不用
    
    	for (i = 1; i <= 100; i++) // 数组各元素赋值
    		a[i] = i;
    
    	for (i = 2; i < sqrt(100); i++)     // 外循环使i作为除数
    	{
    		for (j = i + 1; j <= 100; j++)  // 内循环检测除数i之后的数是否为i的倍数
    		{
    			if (a[i] != 0 && a[j] != 0) // 排除0值元素
    				if (a[j] % a[i] == 0)
    					a[j] = 0;           // i后数若为i的倍数,刚将其置0(挖去)
    		}
    	}
    
    	int n = 0;    // 对输出素数计数, 以控制换行显示
    
    	for (i = 2; i <= 100; i++)    // 输出素数
    	{
    		if (a[i] != 0)
    		{
    			printf("%-5d", a[i]); // 输出数组中非0元素(未挖去的数)
    			n++;
    		}
    		if (n == 10)
    		{
    			printf("\n");         // 每行10个输出
    			n = 0;
    		}
    	}
    	printf("\n");
    
    	return 0;
    }

    运行结果为:

    G:\desktop\huiwenTest>sievePrime.exe
    2    3    5    7    11   13   17   19   23   29
    31   37   41   43   47   53   59   61   67   71
    73   79   83   89   97


  • 相关阅读:
    日志/异常处理(nnlog+traceback)
    Excel操作
    商品管理系统
    大乐透作业
    随机生成密码作业
    时间相关的模块
    os模块
    sys模块
    Pytho中dict(或对象)与json之间的互相转化
    Python三元表达式和列表生成式
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007667.html
Copyright © 2011-2022 走看看