输出所有满足以下条件的三位整数:该数是素数,该数的个位数字十位数字之和被10除余数是该数的百位数字.

输出所有满足以下条件的三位整数:该数是素数,该数的个位数字十位数字之和被10除余数是该数的百位数字.
例如,293是素数并且(3+9)被10除的余数是2,因此293是满足条件的三位素数
用c++语言,尽量初级简单一点
Cally3 1年前 已收到1个回答 举报

verasj 幼苗

共回答了13个问题采纳率:92.3% 举报

满足条件的数abc其实非常少,最多可能只有50个,去掉合数,只有十个左右.b + c - 10 = a或b+c=a
c = 1, 3, 5, 7, 9b = 0-9可以算出a小于33的质数,2,3,5,7,11,13,17,19,23,29,31
int isprime(int x) {
int i;
int const t[10] = {3,5,7,11,13,17,19,23,29,31};
for (i = 0; i < 10; ++i) {
if (x % t[i] == 0) return 0;
}
return 1;
}
int main() {
int a, b, c, x;
for ( b = 0; b < 10; ++b) {
for ( c = 1; c < 10; c += 2) {
a = (b + c < 10) ? b + c : b + c - 10;
x = a * 100 + b * 10 + c;
if (a > 0 isprime(x)) {
printf("%d ", x);
}
}
}
}

1年前

3
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.088 s. - webmaster@yulucn.com