输入: 输入的第一行含一个正整数k (1<=k<=10),表示测试例的个数,后面紧接着k行,每行对应一个测试例,包含一个正整数x 输出: 每个测试例对应一行输出,输出x的素数乘积表示式,式中的素数从小到大排列,两个素数之间用“*”表示乘法。用C语言实现这个任务的代码是什么
时间: 2023-02-19 17:20:47 浏览: 312
本例是一个求素数的c语言代码
输入:第一行为一个正整数k (1<=k<=10),表示有k个测试例;接下来的k行每行是一个正整数x,表示要求的数的素数乘积表示式。
输出:对于每个测试例,输出一行结果,表示x的素数乘积表示式,素数从小到大排列,并用“*”表示乘法。
C语言实现代码:
```
#include<stdio.h>
#include<math.h>
int is_prime(int x)
{
int i;
if(x<2)
return 0;
for(i=2;i<=sqrt(x);i++)
if(x%i==0)
return 0;
return 1;
}
int main()
{
int k,i,x;
scanf("%d",&k);
for(i=0;i<k;i++)
{
scanf("%d",&x);
int j;
for(j=2;j<=x;j++)
if(is_prime(j)&&x%j==0)
{
printf("%d",j);
x/=j;
j--;
if(x!=1)
printf("*");
}
printf("\n");
}
return 0;
}
```
阅读全文