题解
【入门】纯粹合数
1 条题解
-
0
解题思路
枚举所有三位数,分别判断它本身、去掉个位后的数和百位数是不是合数。
参考代码
// 先读入题目给出的输入数据。 // 用简单的循环完成题目要求。 #include <iostream> using namespace std; bool he(int n) { if (n < 4) return false; for (int i = 2; i * i <= n; i++) { if (n % i == 0) return false; } return true; } bool heShu(int n) { if (n < 4) return false; for (int i = 2; i * i <= n; i++) { // 找到因数才是合数。 if (n % i == 0) return true; } return false; } int main() { for (int n = 100; n <= 999; n++) { // 依次检查三位数、去掉一位后的数和最后的一位数。 if (heShu(n) && heShu(n / 10) && heShu(n / 100)) { cout << n << endl; } } return 0; }复杂度分析
代码只使用了简单变量、数组、循环和判断。时间复杂度根据题目的枚举或扫描过程计算,额外空间主要是输入数组,空间复杂度为 O(n)。
- 1