如何使用c代码将素因子排序到数组中并以特定方式显示

如何使用c代码将素因子排序到数组中并以特定方式显示,c,C,嗨,我想用c语言创建一个代码,输入一个数字,它会检查它的素因子,然后打印出这些因子。 只有一种特定的方式要求我打印这些数字 56的主要因素是: {2,7} 这是必需的输出,我只能做到: 56的主要因素是: 2,7, 有人建议我将输出存储到一个数组中,然后操纵数组删除结尾的逗号并添加{},但我不知道该怎么做 以下是我的代码供参考: #include<stdio.h> int main(){ int i, j, number, p; printf("Enter a Numbe

嗨,我想用c语言创建一个代码,输入一个数字,它会检查它的素因子,然后打印出这些因子。 只有一种特定的方式要求我打印这些数字

56的主要因素是: {2,7}

这是必需的输出,我只能做到:

56的主要因素是: 2,7,

有人建议我将输出存储到一个数组中,然后操纵数组删除结尾的逗号并添加{},但我不知道该怎么做

以下是我的代码供参考:

#include<stdio.h> int main(){

int i, j, number, p;
printf("Enter a Number to find Prime Factors:");
scanf("%d", &number);
    if(number < 2)
    {
        printf("Invalid input\n");
    }else {
printf("The prime factors of %d are:\n ", number);
for(i=2; i<=number; i++)
{
    /* Check 'i' for factor of num */
    if(number%i==0)
    {
        /* Check 'i' for Prime */
        p=1;
        for(j=2; j<=i/2; j++)
        {
            if(i%j==0)
            {
                p = 0;
                break;
            }
        }
        /* If 'i' is Prime number and factor of num */
        if(p==1)
        {
            printf("%d,", i);
        } 
    }
}    
#包含int main(){
int i,j,数字,p;
printf(“输入一个数字以查找素数:”);
scanf(“%d”和编号);
如果(数字<2)
{
printf(“无效输入\n”);
}否则{
printf(“%d的素数因子是:\n”,数字);

对于(i=2;i首先,您应该一致地缩进代码,以便易于阅读。在下面,我将向您展示一种不使用任何中间数组变量的方法。关键点是,您需要区分要输出的第一个数字与其他数字,并且需要添加不带括号的大括号在开始和结束的时候

#包括
int main(){
int i,j,数字,p;
int first_factor=1;/*是否打印第一个因子*/
printf(“输入一个数字以查找素数:”);
scanf(“%d”和编号);
如果(数字<2)
{
printf(“无效输入\n”);
}否则{
/*我删除了下面printf中的换行符*/
printf(“%d的基本因子为:”,数字);
putchar(“{”);/*在回答的开头打印“{”*/

对于(i=2;我肯定至少会打开
{
和关闭
}
易于添加。否?只需无条件地在
for
循环之前和之后打印它们。至于逗号,一种简单的方法是在数字之前打印,第一次除外。因此,您只需在第一个数字之后设置一个标志,该标志以true开头,然后设置为false(反之亦然)@kaylum,这看起来像是注释中的答案。4{2}或{2,2}所需的输出是什么?只需要一个2@Yunnosch@kaylum,对不起,我有点理解你的意思,但我实际上只是在有限的时间内做c代码,所以我不确定你的确切意思。