• UVALIve 5987 素数


    题目链接:Distinct Primes

    如果一个数。至少有三个因子是素数、。那么这个数就是prime num.30和42是前两个prime num.问你第n个这种数是谁。(1<=n<=1000)。

    用质因子分解。判断每个数有多少个因子是质数。如果超过3个旧记录下来、记录前1000个。

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<math.h>
    using namespace std;
    
    typedef long long ll;
    #define N 5000
    int isprime[N];
    ll prime[N], nprime,  factor[N], numfactor[N], ct;
    
    void makeprime()  // 打出1到N的素数表。
    {
        int i, j, temp;
        nprime = 0;
        memset(isprime, 1, sizeof(isprime));
        isprime[1] = 1;
        temp = sqrt(N+0.0);
        for (i=2; i<=temp; ++i)
        {
            if (isprime[i])
            {
                for (j=i+i; j<N; j+=i)
                {
                    isprime[j] = 0;
                }
            }
        }
        for (int i=1; i<N; ++i)
        {
            if (isprime[i]) prime[nprime++] = i;
        }
    }
    
    int divide(int n)  // 对n进行质因子分解。ct表示质因子的个数、
    {
        int i;
        int temp = sqrt(n+0.0);
        ct = 0;
        memset(numfactor, 0, sizeof(numfactor));
        for (i=1; i<=nprime; ++i)
        {
            if (prime[i] > temp) break;
            if (n % prime[i] == 0)
            {
                factor[++ct] = prime[i];
                while(n % prime[i] == 0)
                {
                    n /= prime[i];
                }
            }
        }
        if (n != 1)
        {
            factor[++ct] = n;
        }
        return ct;
    }
    
    int main()
    {
        int num[1001], cnt = 0;
        makeprime();
        for (int i=1; ; ++i)
        {
            if (divide(i) >= 3) num[cnt++] = i;
            if (cnt > 1000) break;
        }
        int t, n;
        cin >> t;
        while(t--)
        {
            cin >> n;
            cout << num[n-1] << endl;
        }
        return 0;
    }
    View Code
  • 相关阅读:
    HashMap和Hashtable的区别
    java倒计时三种简单实现方式
    AngularJS---基本操作
    AngularJS---认识AngularJS
    Java线程面试题
    JAVA中高访问量高并发的问题怎么解决?
    Java高并发,如何解决,什么方式解决
    Map总结
    Github
    反射
  • 原文地址:https://www.cnblogs.com/icode-girl/p/4749131.html
Copyright © 2020-2023  润新知