UVA10791最小公倍數的最小和_分解定理
阿新 • • 發佈:2018-11-22
思路: 把n分解為質素的冪 然後相加
1.需要注意: 32 = 2^4; 此時一次性分解了32 所以和為33
2.當n沒有被分解, 在2~sqrt(n)沒有可除的數, 說明n為質素
3.當n沒有被分解完, 74=2*37; 2~sqrt(74); 還要把剩餘的n加上.
java code:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int cas = 1; while(sc.hasNextLong()){ long n = sc.nextLong(); if(n == 0) break; int len = (int)Math.sqrt(n+0.5); long sum = 0, cnt = 0; for(int i = 2; i<=len; i++){ if(n%i == 0){ long f = 1; cnt ++; while(n%i == 0){ n/=i; f*=i; } sum += f; if(n == 1) break; } } if(n != 1 || cnt == 0){ sum += n; cnt ++; } if(cnt == 1) sum++; System.out.println("Case "+cas++ + ": "+ sum); } } }