close
內容
求一个数全部质因数之和
比如,
6 = 2 x 3,则输出 2 + 3 = 5
8 = 2 x 2 x 2,则输出 2 + 2 + 2 = 6
輸入說明
每行一个正整数,x<2000000000, 以EOF为结束
輸出說明
对应的因数和
C++
#include<iostream> #include<cmath> using namespace std; long long in1,in2; int main() { //輸入數字 while(cin>>in1) { long long i,sum=0; //找質數記得先用根號再下去做不然太慢 for(i=2;i<=sqrt(in1);i++) { //判斷 i 是否為該數的質因數並相加 while(in1%i==0) { in1/=i; sum+=i; } } //輸出 if(in1==1) { cout<<sum<<endl; } else { cout<<sum+in1<<endl; } } return 0; }
全站熱搜