zoukankan      html  css  js  c++  java
  • virtual hust 2013.6.21 数论基础题目 H

    题目:Factoring Large Numbers

    思路:开始一看,感觉暴不了,然后题目中有说大于100w的素因子只有一个,所以那就暴100w以内的质因子就行,最后剩下的不等于1的话,就是一个大于100w的素因子直接输出

    #include <cstdio>
    #include <iostream>
    #include <cmath>
    #include <algorithm>
    #include <cstring>
    using namespace std;
    #define maxn 1000001
    bool vis[maxn];
    int prime[maxn];
    int n_prime=0;
    void Prime()
    {
        memset(vis,true,sizeof(vis));
        vis[1]=vis[0]=false;
        for(int i=2;i<maxn;i++)
        {
            if(vis[i])
            {
                prime[++n_prime]=i;
                for(int j=2*i;j<maxn;j+=i)
                    vis[j]=false;
            }
    
        }
        //cout<<n_prime<<" "<<prime[n_prime]<<endl;
    }
    int main()
    {
        Prime();
        long long n;
        while(scanf("%lld",&n)!=EOF)
        {
            if(n<=0)
                break;
            for(int i=1;i<=n_prime;i++)
            {
                if(n%prime[i]==0)
                {
                    while(n%prime[i]==0)
                    {
                        printf("    ");
                        printf("%d
    ",prime[i]);
                        n/=prime[i];
                    }
                }
            }
            if(n!=1)
                printf("    %lld
    ",n);
            printf("
    ");
        }
        return 0;
    }
    View Code
  • 相关阅读:
    C51学习 之 中断
    C51学习 之 动态数码管
    C51学习 之 LED流水灯
    锁存器 工作功能
    keil 5下载地址
    成本与利润最大化问题
    记一次VS下LINK1169的错误
    合并链表
    设计推特
    线段求交点
  • 原文地址:https://www.cnblogs.com/overflow/p/3147805.html
Copyright © 2011-2022 走看看