文章

11

粉丝

125

获赞

10

访问

37.9k

头像
先打表再算提供的因数个数
P1284 上海交通大学机试题
发布于2023年1月25日 16:46
阅读数 3.1k

#include <bits/stdc++.h>
#include <unordered_map>
using namespace std;
typedef long long ll;
const int N=1e4+7,INF = 0x3f3f3f3f;;
typedef pair<int, int> PII;
unordered_map<int, int>cnt1;
unordered_map<int, int>cnt2;
int n,m,a;      // 点的数量
int prime[N],flag;        // 存储所有点到1号点的距离
int st[N];     // 存储每个点的最短距离是否已确定
int init()
{
    int cnt=0;
	for(int i=2;i<=1000;i++)
	{
		if(!st[i])
		{
			prime[cnt++]=i;
			for(int j=i*i;j<=1000;j+=i)
			{
				st[j]=1;
			}
		}
		
	}
    return cnt;
}

int main()
{
	ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int cnt=init();
	while(cin>>n>>a)
    {
        
        for(int i=0;i<cnt;i++)
        {
            int tmp=n;
            while(tmp)
            {
                cnt1[i]+=tmp/prime[i];
                tmp/=prime[i];
            }
        }
        int res=0x3f3f3f3f3f;
        for(int i=0;i<cnt;i++)
        {
    ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发