zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    java.lang.NoSuchMethodError: org.springframework.web.context.request.ServletRequestAttributes.<init>
    eclipse web项目实际工程路径对应
    java中专业术语详解
    Maven详解
    工作常用
    html页面布局
    jQuery易混淆概念的区别
    Jquery Datagrid
    Jquery EasyUI 动态添加标签页(Tabs)
    sql语句的写法
  • 原文地址:https://www.cnblogs.com/icode-girl/p/4749131.html
Copyright © 2011-2022 走看看