输入一个正整数n,记录各位上奇数和偶数字出现的次数p,他们的次数差Δp 为正整数,且如果Δp为质数时我们称之n为糟糕数,输出:bad ,否则输出:not bad
时间: 2023-03-27 18:01:59 浏览: 114
我可以回答这个问题。给定一个正整数n,我们可以通过以下步骤来计算各位上奇数和偶数字出现的次数p和它们的次数差Δp:
1. 初始化p_odd和p_even为。
2. 将n的每一位数字取出来,如果它是奇数,则p_odd加1,否则p_even加1。
3. 计算Δp = |p_odd - p_even|。
如果Δp是质数,则n是糟糕数,输出"bad",否则输出"not bad"。
下面是一个示例代码:
#include <stdio.h>
#include <math.h>
int is_prime(int n) {
if (n <= 1) {
return ;
}
int i;
for (i = 2; i <= sqrt(n); i++) {
if (n % i == ) {
return ;
}
}
return 1;
}
int main() {
int n;
scanf("%d", &n);
int p_odd = , p_even = ;
while (n > ) {
int digit = n % 10;
if (digit % 2 == ) {
p_even++;
} else {
p_odd++;
}
n /= 10;
}
int delta_p = abs(p_odd - p_even);
if (is_prime(delta_p)) {
printf("bad\n");
} else {
printf("not bad\n");
}
return ;
}