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;
}
 
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 豪CO 的頭像
    豪CO

    程式道路,必為豐富

    豪CO 發表在 痞客邦 留言(0) 人氣()