不知道如何才可以做到任意输入,
输入的第一行含一个正整数k(1<=k<=10),表示测试例的个数,后面紧接着k行,每行对应一个测试例,包含一个正整数x输出:每个测试例对应一行输出,输出x的素数乘积表示式,式中的素数从小到大排列,两个素数之间用“*”表示乘法。
不知道如何才可以做到任意输入,
输入的第一行含一个正整数k(1<=k<=10),表示测试例的个数,后面紧接着k行,每行对应一个测试例,包含一个正整数x输出:每个测试例对应一行输出,输出x的素数乘积表示式,式中的素数从小到大排列,两个素数之间用“*”表示乘法。
该回答引用ChatGPT
#include <stdio.h>
#include <math.h>
int is_prime(int x) {
int i;
for (i = 2; i <= sqrt(x); i++) {
if (x % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int k, x, i;
scanf("%d", &k);
while (k--) {
scanf("%d", &x);
for (i = 2; i <= x; i++) {
if (x % i == 0 && is_prime(i)) {
printf("%d", i);
x /= i;
i--;
if (x > 1) {
printf("*");
} else {
break;
}
}
}
printf("\n");
}
return 0;
}