早教吧 育儿知识 作业答案 考试题库 百科 知识分享

输出所有满足以下条件的三位整数:该数是素数,该数的个位数字十位数字之和被10除余数是该数的百位数字.例如,293是素数并且(3+9)被10除的余数是2,因此293是满足条件的三位素数用c++语言,

题目详情
输出所有满足以下条件的三位整数:该数是素数,该数的个位数字十位数字之和被10除余数是该数的百位数字.
例如,293是素数并且(3+9)被10除的余数是2,因此293是满足条件的三位素数
用c++语言,尽量初级简单一点
▼优质解答
答案和解析

满足条件的数abc其实非常少,最多可能只有50个,去掉合数,只有十个左右.

b + c - 10 = a或b+c=a

c = 1, 3, 5, 7, 9

b = 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);
            }
        }
    }
}