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;
    }
  • 相关阅读:
    printf()参数的处理
    const关键字作用
    static的作用
    程序调试的方法
    引用与指针的区别
    内存对齐
    Android UI开发详解之ActionBar
    Android ActionBar使用方法
    android的系统学习
    Activity 切换动画
  • 原文地址:https://www.cnblogs.com/jiangjing/p/3112035.html
Copyright © 2011-2022 走看看