wangshuo 发表于 2019-2-13 09:16:54

求助,以下两端求正整数分解质因数的代码是都可以吗?还是说第一种不行?

第一种代码{:5_109:} :


#include<stdio.h>
int main(){
        int n,i;
        printf("\nplease input a number:\n");
        scanf("%d",&n);
        printf("%d=",n);
        for(i=2;i<n;i++){
       
                        if(n%i==0){
                                printf("%d*",i);
                                n=n/i;
                        }
               
        }
        printf("%d",n);
}



第二种代码:
#include<stdio.h>
int main(){
        int n,i;
        printf("\nplease input a number:\n");
        scanf("%d",&n);
        printf("%d=",n);
        for(i=2;i<=n;i++){
                while(n!=i){
                        if(n%i==0){
                                printf("%d*",i);
                                n=n/i;
                        }else{
                                break;
                        }
                }
        }
        printf("%d",n);
}


求助!!!{:5_96:}

枫还 发表于 2019-2-13 10:29:18

第一段代码,在n=n/i之后加一条 i=i-1语句就可以了,不加的话,输入16会得到2*4*2
页: [1]
查看完整版本: 求助,以下两端求正整数分解质因数的代码是都可以吗?还是说第一种不行?