又是一周的学习,这周的收获也是满满,这次的学习总结分析一道来自《C语言程序设计》的例题(例4-3 判断素数)。

下面是程序的源代码:

 

#include <stdio.h>
#include <math.h>
int main(){
    int i, limit, m;
    
    printf("Enter a number:");
    scanf("%d", &m);
    if(m<=1){
        printf("No!\n");
    }else if(m==2){
        printf("%d is a prime number!\n",m);
    }else{
        limit = sqrt(m)+1;
        for(i=2; i<=limit; i++){
            if(m%i==0){
                break;
            }
        }
        if(i>limit){
            printf("%d is a prime number!\n", m);
        }else{
            printf("No!\n");
        }
    }
    return 0;
}

运行结果    1

运行结果    2

 

 两个运行结果皆符合数学判定的结果。

 

获得新知

1.如果要在程序中使用例如平方或者开根等除基础四则运算外的高阶运算时需在程序的开头调用“  #include <math.h>  ”库,这样计算机才能识别你写的sqrt,pow等函数,

如果没调用会出现这样的warning,即使不是Error,但是程序还是不能正常运行。

2.此题的思路不难,但是用计算机语言编辑出来就还是有一定难度。

 

程序使用了嵌套循环结构,使用了if-else语句与for循环语句,并且还包含了一个break语句(用于跳出当前循环)。

 

第一步,输入一个数m。√

 

第二步,进入第一个判断语句,如果m小于等于1,则直接输出No!,程序结束;如果m等于2,则输出2是素数,程序结束;如果输入的是其他大于2的整数则进入第三步。

 

第三步,计算出我们之前定义的整型变量limit,limit = √m + 1。

 

第四步,进入for循环,如果该数只能被自身或者1整除,则为素数;如果能被其他数整除,则不为素数。

 

第五步,程序结束。

 

个人感想:在大脑中构思出此题的解决办法难度不大,但是用计算机语言表达出来还是有些难度,应该是编程经验不足导致的,我会多写多练,继续进步!

posted on 2021-10-10 17:50  软件2113许正铆  阅读(39)  评论(0)    收藏  举报