C语言 - 判断 循环嵌套(判断是否为素数)(求某个数以内的最大素数)

目录

1.判断是否为素数

2.求某个数以内的最大素数

3.代码实行过程

4.结尾


1.判断是否为素数

 *          解释何为素数

    /* 素数,除本身的绝对值外,不可能为大于1的整数除尽的数引用

    解释大于1的整数,除了它本身和1以外,

    不能被其他正整数所整除的

    */

2.求某个数以内的最大素数

 *          在一定范围内 最大的素数

 *              思路

 *                在某个范围肯定就是要使用循环,已经有了第一单个数字判断例子

                就是说遇到判断不要慌 不要觉得难,不管是什么例子遇到了什么问题 

                一定就是从一个数去试数 然后再套循环

3.代码实行过程

/**
 *      program:    判断是否为素数
 *          解释何为素数
 *              代码执行过程
 *          
 *          在一定范围内 最大的素数
 *              思路
 *              代码执行过程
 *      
 *      author:Rocco
*/
#include <stdio.h>

int main(void)
{
    /*
        程序思路
            说明程序 并 调用scanf()
    */
    //程序说明  判断是否为素数--程序交互式
    printf("Determine whether it is a prime number",
            "--program interactive\n");
    printf("\ninput:");

    //解释何为素数
    /* 素数,除本身的绝对值外,不可能为大于1的整数除尽的数引用
    解释大于1的整数,除了它本身和1以外,
    不能被其他正整数所整除的 
    */

   //scanf()  给程序输入一个值 到变量
   int num;     //  待判断数值
   int i;       //为了递增循环

   scanf("%d", &num);   // & 取地址符 把输入的值 放到num内存地址里

    //开始循环 "能被大于1的数整除" 所以从2开始
    for (i = 2; i < num; i++)
    {
        //判断 "除本身的绝对值外,不可能为大于1的整数" 是否可以被整除
        if (num % i == 0)       //复习:%  取余数 为0 执行
        {
            printf("It's not, no prime number\n");
            break;
        }
    }

    if (i % num == 0)
    {
        printf("%d\n", num);
        printf("It's right, the prime number\n");
    }


    //已经结束  由于for循环 i 已经做过+1操作
    //就是说 i已经等于num
    //再去核实 判断 i/num 到底有没有余数
    for (int j = 0; j < 30; j++)
    {
        printf("*");
    }
    printf("\n");

    //loop check for prime numbers
    //循环检验素数
    printf("loop check for prime numbers\n");
    //输入一个的范围
    printf("input:");
    //定义一个范围的值
    int num_2;
    int max = 0;        //存放范围中最大的素数
    int i_2;

    scanf("%d", &num_2);  //通过键盘输入num_2判断素数范围的值

    //先从一个数 试数
    //但是 我们做的 单数判断素数 已经符合要求
    //                      就可以直接复制 套进循环里了

    //           这里for循环的范围就是num_2
    //  范围起始是 i_2 60  
    for (i = 2; i <= num_2; i++)
    {   
         // 2
        for (i_2 = 2; i_2 < i; i_2++)
        {
            //判断 "除本身的绝对值外,不可能为大于1的整数" 是否可以被整除
            //范围起始 取余数 判断结果
            if (i % i_2 == 0)       //复习:%  取余数 为0 执行
            {
                //这里可以选择不打印 不是素数的句子  直接break停止
                //printf("It's not, no prime number\n");
                break;
            }

        }

            
        if (i_2 % i == 0)
        {
            //考虑 要不要把范围内所有的素数打印出来
            //printf("%d ", i_2);
                
            //由于for循环是从最小数开始判断的 到最后一个
            //肯定就是素数
            //走程序 就定义一个变量 意味最大值
            max = i_2;
        }       
            
    }

    //最外围的for循环结束  打印max最大值
    printf("prime max is = %d\n", max);
    

    
   
    getchar();
    getchar();
    return 0;
}

4.结尾

重点!重点!重点!重点!重点!

重点看代码块中的注释        //复制后可以直接运行

先想办法试数  再去套循环

下一讲   函数设计  例子-(在一定范围内 数九) 比如19090, 有2个九。  

有问题可以直接私信 ,You should elevate yourself. Of course, and me.

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A.Helen

当然重点是个人成长

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值