zoukankan      html  css  js  c++  java
  • 求多个数的质因子

    我学到了一种新的素数筛选法,不过相对于以前那种素数筛选法还是慢了点,不过用来求一个数的质因子的话还是比较好的!!

    代码实现:

    #include<iostream>
    #include<vector>
    #include<algorithm>
    #include<string.h>
    using namespace std;
    int visited[100010];
    vector<int>a[100010];
    void init()
    {
        int i,j;
        for(i=0;i<100010;i++)
           a[i].clear();//vector的清空
        memset(visited,0,sizeof(visited));
        for(i=2;i<=100000;i++)
        {
            if(visited[i]==0)//i是素数这是可以保证的
            {
                a[i].push_back(i);
                for(j=i+i;j<=100000;j+=i)//筛选素数,其实这种方法没以前那种素数法快,但是这里用来求一个数的质因子就比较好了
                {
                    visited[j]=1;
                    a[j].push_back(i);
                }
            }
        }
    }
    int main()
    {
        int i,j;
        init();
        for(i=0;i<=50;i++)
        {
            printf("%d:",i);
            for(j=0;j<a[i].size();j++)
                printf("%d ",a[i][j]);
            printf("\n");
        }
        return 0;
    }
  • 相关阅读:
    database使用
    画图工具
    宝塔面板权限不足问题解决
    nginx查看并发数量
    台式机未插入扬声器或者耳机
    键盘出现乱码解决
    lnmp宝塔面板问题
    nginx+mysql双主搭建
    zabbix客户端安装
    java生产条形码
  • 原文地址:https://www.cnblogs.com/jiangjing/p/3112035.html
Copyright © 2011-2022 走看看