1 条题解
-
4
#include <iostream> #include <string> #include <cmath> using namespace std; bool prime(int n)//经典的判断质数函数 { int prime = 1; for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) { prime = 0; break; } } if (prime == 1) { return true; } else { return false; } } int main() { int n; int a, b; cin >> n; int num = 0; int min = 1410065407;//int类型的最大数 for (int i = 0;; i++) { if (n / (int)pow(10, i) == 0)//还是要注意隐式转换的问题 { break; } else { a = n / (int)pow(10, i); b = n % (int)pow(10, i); if (prime(a+b) == true && min > a+b)//同时满足质数和更小 { min = a + b; } } } if (min < 1410065407)//当min还等于1410065407说明没有这样的质数 { cout << min; } else { cout << -1; } return 0; }
- 1
信息
- ID
- 128
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 1
- 标签
- 递交数
- 49
- 已通过
- 40
- 上传者