素因子分解


7-15 素因子分解 (20 分)

給定某個正整數 N,求其素因子分解結果,即給出其因式分解表達式 N=p1​​k1​​​​p2​​k2​​​​pm​​km​​​​。

輸入格式:

輸入long int范圍內的正整數 N。

輸出格式:

按給定格式輸出N的素因式分解表達式,即 N=p1^k1*p2^k2*…*pm^km,其中pi為素因子並要求由小到大輸出,指數kipi的個數;當ki為1即因子pi只有一個時不輸出ki

輸入樣例:

1323

輸出樣例:

1323=3^3*7^2


這題的話,暴力去找,如果n的所有素因子被除盡,那此時n等於1,所以后面的也不會有和n有公因子的數了。

立一個flag,這樣第一次的時候我們就不輸出*了,對k進行一下判斷,這是題上的要求,然后再進行輸出,只要按照題目的要求來就基本不會錯。

 1 #include <cstdio>
 2 #include <iostream>
 3 
 4 int main()
 5 {
 6     long long n;
 7     scanf("%lld",&n);
 8     printf("%lld=",n);
 9     if (n>1) {
10         int flag = 0;
11         for (int i=2;i<=n;i++) {
12             int k = 0;
13             if (n%i==0) {
14                 while (n%i==0) {
15                     k++;
16                     n /= i;
17                 }
18                 if (flag)
19                     printf("*");
20                 printf("%d",i);
21                 flag = 1;
22                 if (k>1)
23                     printf("^%d", k);
24             }
25             
26         }
27     }
28     else {
29         printf("%d", 1);
30     }
31     printf("\n");
32     system("pause");
33     return 0;
34 }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM