SP11736 PTIME - Prime Time

传送门:SP11736 PTIME - Prime Time

额,这个题目跟我自己在某个团队出的题目类似,是我在某次数学课后想到的题目。我的想法是预处理所有 n\le n 的质数,然后每个质数处理一遍即可。

代码:

#include <iostream>
using namespace std;

int n;
const int N = 1e3 + 5;
bool not_prime[N];
long long prime[N];
int cur = 0;
long long ys[N], zs[N];

void Init()
{
	not_prime[1] = not_prime[0] = true;
	for (int i = 2; i <= n; i++)
	{
		if (!not_prime[i])
		{
			prime[++cur] = i;
			for (int j = i * i; j <= n; j += i)
			{
				not_prime[j] = true;
			} 
		}
	}
}

int main()
{
	cin >> n;
	Init();
	for (int i = 1; i <= cur; i++)
	{
		ys[i] = prime[i];
		long long cnt = 0;
		for (int j = prime[i]; j <= n; j *= prime[i])
		{
			cnt += n / j;
		}
		zs[i] = cnt;
	}
	for (int i = 1; i < cur; i++)
	{
		cout << ys[i] << "^" << zs[i] << " * ";
	}
	cout << ys[cur] << "^" << zs[cur] << endl;
	return 0;
}
posted @   HappyBobb  阅读(5)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示