1 条题解
-
0
思路分析
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
- 上传者