文章

20

粉丝

86

获赞

2

访问

4.4k

头像
质因数个数 题解:
799 VIP
P1156 清华大学上机题
发布于2024年3月8日 15:49
阅读数 233

/*

用到2个数组 vector 定义,一个数组用来标记1-n中,是素数的数字;然后遍历,存放1-n素数

*/

 

#include<bits/stdc++.h>

using namespace std;
vector<int> pn;//素数数组
int prime(int x)//判断素数
{
    int flag=1;//1是素数
    if(x==1) return 0;//0不是素数
    for(int j=2;j<=sqrt(x);j++)
    {
        if(x % j==0){
            flag=0;//不是素数;
            break;
        }
    }
    return flag;
}

void getPrinme(int n)//筛选1-n的素数
{
    vector<int> flag(n+1,1);
    flag[0]=0,flag[1]=0;
    //素数标记1
    int p=2;
    //标记素数
    while(p*p <=n)
    {
        for(int i=2*p;i<=n;i+=p)
        {//删除质数p的整数倍
            flag[i]=0;
        }
      ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发