您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 辅导 >> 正文    
  C趣味程序百例(09)求素数 【注册男护士专用博客】          

C趣味程序百例(09)求素数

www.nanhushi.com     佚名   不详 

30.求素数
    求素数表中1~1000之间的所有素数
*问题分析与算法设计
    素数就是仅能衩1和它自身整除的整数。判定一个整数n是否为素数就是要判定整数n能否被除1和它自身之外的任意整数整除,若都不能整除,则n为素数。
    程序设计时i可以从2开始,到该整数n的1/2为止,用i依次去除需要判定的整数,只要存在可以整除该数的情况,即可确定要判断的整数不是素数,否则是素数。
*程序与程序注释
#include<stdio.h>
void main()
{
    int n1,nm,i,j,flag,count=0;
    do{
        printf("Input START and END=?");
        scanf("%d%d",&n1,&nm);           /*输入求素数的范围*/
    }while(!(n1>0&&n1<nm));               /*输入正确的范围*/
    printf("...........PRIME TABLE(%d--%d)............\n",n1,nm);
    if(n1==1||n1==2)                  /*处理素数2*/
    {
        printf("%4d",2);
        n1=3;count++;
    }
    for(i=n1;i<=nm;i++)              /*判定指定范围内的整数是否为素数*/
    {
        if(!(i%2))continue;
        for(flag=1,j=3;flag&&j<i/2;j+=2)
                                    /*判定能否被从3到整数的一半中的某一数所整除*/
            if(!(i%j))flag=0;       /*若能整除则不是素数*/
        if(flag) printf(++count%15?"%4d":"%4d\n",i);
    }
}
*运行结果
Input START and END=?1 1000


*思考题       
    请找出十个最小的连续自然数,它们个个都是合数(非素数)

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目