当前位置: 首页 > news >正文

网站建设 管理与维护试题网站开发手机自适应

网站建设 管理与维护试题,网站开发手机自适应,做挂的网站,网站首页结构图一、思路 我们先用埃氏筛法,找出1048576范围内的素数,其实找出1024以内的就够了,但是1048576也不大,所以无所谓了。 然后把输入的数字不断的判断与每个素数是否整除,然后把输入的数变为很多个素数相乘的形式&#xf…

一、思路

我们先用埃氏筛法,找出1048576范围内的素数,其实找出1024以内的就够了,但是1048576也不大,所以无所谓了。

然后把输入的数字不断的判断与每个素数是否整除,然后把输入的数变为很多个素数相乘的形式,最后素数的个数就是这个X-fcactor chains的长度。

然后种类数的话,需要把这些素数写成次方的形式,比如200=(2^3)*(5^2),然后针对2,5,dfs,判断每个数乘上去与不乘上去的情况,一直到每个数都乘上去的情况是递归出口,然后结果+1.

例如100=(2^2)*(5^2)

2^0*5^0->2^1*5^0->2^2*5^0->2^2*5^1->2*2*5^2

2^0*5^0->2^1*5^0->2^1*5^1->2^2*5^1->2*2*5^2

2^0*5^0->2^1*5^0->2^1*5^1->2^1*5^2->2*2*5^2

2^0*5^0->5^1*2^0->2^1*5^1->2^2*5^1->2*2*5^2

2^0*5^0->5^1*2^0->2^1*5^1->2^1*5^2->2*2*5^2

2^0*5^0->5^1*2^0->2^0*5^2->2^1*5^2->2*2*5^2

这样也就得出6种,(算式中,我用2^5代表2的5次方,2*2*5^2代表2的平方乘以5的平方。

二、代码

#include <iostream>
#include <set>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
bool isPrime[1049007];
int n = 1049007, p;
vector<int> primeVector;
vector<int> facArray;
vector<int> distinctArray;
vector<int> countArray;
ll ansCount = 0;
int dfsArray[100];
void sieve()
{for (int i = 0; i <= 1049000; i++){isPrime[i] = true;}isPrime[0] = false, isPrime[1] = false;for (int i = 1; i * i <= 1049000; i++){if (!isPrime[i]){continue;}for (int j = i * 2; j <= 1049000; j += i){isPrime[j] = false;}}
}
void initPrimeVector()
{for (int i = 0; i <= 1049000; i++){if (isPrime[i]){primeVector.push_back(i);}}
}
void getFacArray()
{for (int i = 0; i < primeVector.size(); i++){if (isPrime[p]){facArray.push_back(p);break;}else if (p <= 1){break;}int primeNumber = primeVector[i];while (p % primeNumber == 0){facArray.push_back(primeNumber);p = p / primeNumber;}}
}
void flushVector()
{if (distinctArray.size() > 0){distinctArray.clear();}if (countArray.size() > 0){countArray.clear();}if (facArray.size() > 0){facArray.clear();}
}
void calc()
{map<int, int> countMap;set<int> distinctSet;for (int i = 0; i < facArray.size(); i++){countMap[facArray[i]] = 0;distinctSet.insert(facArray[i]);}for (int i = 0; i < facArray.size(); i++){int count = countMap[facArray[i]];countMap[facArray[i]] = count + 1;}for (set<int>::iterator ite = distinctSet.begin(); ite != distinctSet.end(); ite++){int number = *ite;distinctArray.push_back(number);}sort(distinctArray.begin(), distinctArray.end());for (int i = 0; i < distinctArray.size(); i++){countArray.push_back(countMap[distinctArray[i]]);}
}
void dfs(int sum)
{if (sum == facArray.size()){ansCount++;return;}for (int i = 0; i < distinctArray.size(); i++){if (dfsArray[i] < countArray[i]){dfsArray[i]++;dfs(sum + 1);dfsArray[i]--;}}
}
int main()
{sieve();initPrimeVector();while (~scanf("%d", &p)){ansCount = 0;getFacArray();calc();vector<int> array;for (int i = 0; i < distinctArray.size(); i++){dfsArray[i] = 0;}dfs(0);printf("%d %lld\n", facArray.size(), ansCount);flushVector();}return 0;
}

http://www.yayakq.cn/news/570010/

相关文章:

  • 做办公家具在哪个网站推销好seo诊断书案例
  • 怎么当网站站长企石镇网站建设公司
  • 百度怎么搜索到自己的网站wordpress文章图片加水印
  • 手机页面网站模板怎么卖河津网站建设
  • 德州网站开发培训厦门专业网站建设公司
  • 网上购物的网站有哪些瓷器网站怎么做
  • 企业网站规划如何制作网页效果图
  • 网站建设seo规范seo排名优化课程
  • 免费域名网站搭建山东德州做网站
  • 企业网站免费建设网站托管..
  • php做的网站手机能看到做网站需要注册哪类商标
  • 静态网站模板网页qq登录电脑版
  • 海阳市建设局网站人人车网站建设费用
  • wordpress 本地建站做电商是什么工作
  • dw网站怎么做跳转域名怎么做网站
  • 傻瓜做网站软件网页开发后端软件
  • 自由型网站网站seo具体怎么做?
  • 有没有类似一起做网店的网站wordpress去掉域名后缀
  • 我的世界是谁做的视频网站微信分销怎么做
  • python 网站开发 sae深圳布吉做网站
  • 做vue用哪个网站动态ip做网站可以备案吗
  • 自己做的网站怎么设置关键词一建
  • 服务器网站80端口打不开如何快速建设推广网站
  • 网站制作的语言wordpress文件目录结构
  • logo设计的最好的公司谷歌seo网络公司
  • 关于集团官方网站内容建设的报告如何检测网站的打开速度
  • 东莞网站建设专业品牌太原seo
  • 在青岛做阿里巴巴网站找谁php网站建设基本流程
  • 主要网站域名wordpress 评论管理
  • 网站建设在实际工作中的意义山西教育学会网站建设