美文网首页
3.判断素数、判断闰年

3.判断素数、判断闰年

作者: RBNote | 来源:发表于2017-11-05 19:23 被阅读34次

    一、判断素数:

    定义:只能被1和它自己整除的数叫素数(质素)
    方法一:根据定义:对除了1和它自己的数进行取余(%)运算,如果余数为0说明这个数不是素数。 反之就是素数

    // 从[2,num-1]
    bool isPrimer1(int num)
    {
        for (int i=2; i<num; i++) {
            if(num%i==0)
            {
                return NO; // 不是素数
            }
        }
        return YES; // 是素数:走到这里说明[2,num-1]之间没有num的约数 
    }
    int main()
    {
        int num1 = 0;
        printf("请输入一个正整数:");
        scanf("%d",&num1);
        if (isPrimer1(num1)) {
            printf("%d是素数.\n",num1);
        }else{
            printf("%d不是素数。\n",num1);
        }
        return 0;
    }
    

    方式二: 缩小判断范围。判断在[2,sqrt(n)]这个区间内能不能被整除,能则说明不是素数。

    // [2,sqrt(num)]
    bool isPrimer2(int num)
    {
        for (int i=2; i<=sqrt(num); i++) {
            if (num%i==0) {
                return NO; // 不是素数
            }
        }
        return YES; // 是素数
    }
    

    二、判断闰年

    判断条件:1.能被4整除,但不是被100整除,是闰年。2.能被400整除是闰年。

    bool isRunNian(int year)
    {
        if ((year%4==0) && (year%100!=0)) {return YES;}
        if (year%400==0) {return YES;}
        
        return NO;
    }
    // 统计[2000,2050]年之间有多少年是闰年,并输出所有闰年
    int main()
    {
        int count=0;
        for (int year=2000; year<2050; year++) {
            if (isRunNian(year)) {
                count++;
                printf("%d\t\t",year);
            }
        }
        printf("\n闰年个数:%d\t",count);
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:3.判断素数、判断闰年

          本文链接:https://www.haomeiwen.com/subject/tyshmxtx.html