国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

1059. Prime Factors (25)

2019-11-10 19:17:14
字體:
來源:轉載
供稿:網友

1. 原題: https://www.patest.cn/contests/pat-a-PRactise/1059

2. 思路:

題意:將一個數進行分解成質因數,從小到大輸出。思路:題目不難。有多種方法。可以先建立2~根號N的素數表,然后試除。亦或判斷下一個素數的方法處理。我采用的邊除邊判斷,并把質因數保存到map里。這樣繞了遠路了。注意1的特例。

3. 源碼(已AC):

#include<iostream>#include<algorithm>//使用sqrt函數#include<map>using namespace std;int main(void){	//freopen("in.txt", "r", stdin);	int x, i;	cin >> x;	cout << x << '=';	map<int, int> fac;//key是素數,value是指數。	if (x == 1)//1的特例	{		cout << 1 << endl;		return 0;	}	while (x > 1)	{		int flag = 0;//是否可分解的標志位		int limit = (int)sqrt(double(x));		for (i = 2; i <= limit; i++)//循環		{			if (x % i == 0)			{				x /= i;				if (fac.count(i) == 0)					fac[i] = 0;				fac[i]++;				flag = 1;				break;			}		}		if (flag == 0)//0表示已無法再分解。		{			if (fac.count(x) == 0)				fac[x] = 0;			fac[x]++;			break;		}	}	map<int, int>::iterator it;//輸出	for (it = fac.begin(); it != fac.end(); it++)	{		if (it == fac.begin())		{			if (it->second == 1)				cout << it->first;			else				cout << it->first << '^' << it->second;		}		else		{			if (it->second == 1)				cout << '*' << it->first;			else				cout << '*' << it->first << '^' << it->second;		}	}	cout << endl;	return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鸡西市| 铁岭市| 洛浦县| 夏河县| 延长县| 安远县| 岱山县| 马公市| 鸡东县| 宣化县| 本溪市| 绩溪县| 桦甸市| 茌平县| 周宁县| 东辽县| 宽城| 集贤县| 卢龙县| 类乌齐县| 南部县| 江阴市| 钟祥市| 阜阳市| 滦平县| 客服| 昔阳县| 诸暨市| 临安市| 通榆县| 固阳县| 介休市| 工布江达县| 双牌县| 康定县| 图木舒克市| 肥城市| 扎兰屯市| 五河县| 鱼台县| 临沧市|