1 条题解

  • 0
    @ 2025-10-30 17:02:33

    思路分析

    1. 任务拆解:

    • 遍历所有三位数(100-999)
    • 检查三个条件:
      • 各位数字互不相同
      • 十位数字 > 个位 + 百位
      • 十位 + 百位 不是质数
    • 输出满足条件的三位数

    2. 关键点分析:

    • 数字分离:个位g、十位s、百位b
    • 条件1:g≠s≠b(互不相同)
    • 条件2:s > g + b
    • 条件3:s+b不是质数(因数个数≠2)

    3. 步骤规划:

    • 遍历100到999的所有三位数
    • 分离个位、十位、百位数字
    • 检查数字是否互不相同且十位>个位+百位
    • 计算十位+百位的和,检查是否为质数
    • 输出满足所有条件的数

    4. 代码对应:

    • for(int i=100;i<=999;i++) → 遍历所有三位数
    • int g=i%10,s=i/10%10,b=i/100; → 分离各位数字
    • if(!(g!=s&&s!=b&&g!=b)||s<=gb) continue; → 检查前两个条件
    • for(int j=1;j<=sb;j++) if(sb%j==0) c++; → 统计因数个数
    • if(c!=2) cout<<i<<endl; → 不是质数则输出
    • 1

    信息

    ID
    90
    时间
    1000ms
    内存
    16MiB
    难度
    7
    标签
    (无)
    递交数
    306
    已通过
    80
    上传者