#9587: 求解>"<


xinger86 (羽翼時空)

學校 : 不指定學校
編號 : 46821
來源 : [1.174.29.12]
最後登入時間 :
2015-02-17 21:22:31
a010. 因數分解 | From: [218.173.7.78] | 發表日期 : 2015-01-04 19:01

int main(int argc, char *argv[]) {
    int i = 2,j = 0,k = 0,m = 1,num;
    int a[100];
    while(scanf("%d",&num)!=EOF && num>1 && num<=1000000){
        while(num>i){
            for(i=2;i<=sqrt(num);i++){
                k=0;
                if(num%i==0){
                    k=1;
                    break;
                }
            }
            if(k==1){
                while(num%i==0){
                    a[j]=i;
                    if(a[j]==a[j-1]){
                        m++;
                    }
                    j++;
                    num=num/i;
                }
                if(m>1){
                    printf("%d^%d",i,m);
                    m=1;
                }
                else{
                    printf("%d",i);
                }
                
                if(num/i!=1){
                    printf(" * ");
                }
                else{
                    printf("\n");
                    break;
                }
            }
            else{
                printf("%d\n",num);
                break;
            }
        }
    }
    return 0;
}

 測試999997時,只顯示757  到底哪裡出錯了....

 
#9589: Re:求解>


28984048 (chi)

學校 : 臺北市私立再興中學
編號 : 46326
來源 : [49.216.55.253]
最後登入時間 :
2022-05-04 08:11:22
a010. 因數分解 | From: [163.20.177.14] | 發表日期 : 2015-01-06 21:47

#include <iostream>

#include <cmath>

 

using namespace std ;

 

int main() {

 int in0 ;

 while (cin >>in0 ){

 for (int i=2 ;i<=sqrt(in0);i++ ){

 if (in0%i==0){

 cout <<i ;

 int i2 =0 ;

 while (in0%i==0){

 i2++ ;

 in0/= i;

 }

 if (in0==1){

 cout <<"^" <<i2 <<endl ;

 }

 else if (i2>1 ){

 cout <<"^" <<i2 <<" * ";

 }

 else if (i2==1&in0>1){

 cout <<" * " ;

 }

 

 }

 }

 if (in0>1)

 cout <<in0 <<endl ;

 }

}




 
ZeroJudge Forum