G - Non-Prime Factors Kattis - nonprimefactors (筛1-n内的当前数中非素数的个数)

Posted letlifestop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了G - Non-Prime Factors Kattis - nonprimefactors (筛1-n内的当前数中非素数的个数)相关的知识,希望对你有一定的参考价值。

题目链接:

G - Non-Prime Factors

 Kattis - nonprimefactors 

题目大意:给你一个数n,然后问你n的因子中非素数的个数。

具体思路:埃筛,把每一个数的因子直接算出来就好了。

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int maxn = 2e6 + 100;
 4 int vis[maxn];
 5 int sto[maxn];
 6 void init()
 7 {
 8     for(int i=2; i<maxn; i++)
 9     {
10         if(vis[i])// 当为非素数的时候,当前的数的非素数因子个数++
11             sto[i]++;
12         for(int j=i*2; j<maxn; j+=i)
13         {
14             vis[j]=1;
15             if(vis[i])// 当i不是因子,当前的数2*j中一定含有i这个非素数因子
16                 sto[j]++;
17         }
18     }
19 }
20 int main()
21 {
22     init();
23     int T;
24     scanf("%d",&T);
25     while(T--)
26     {
27         int n;
28         scanf("%d",&n);
29         printf("%d\n",sto[n]+1);
30     }
31     return 0;
32 }

 

以上是关于G - Non-Prime Factors Kattis - nonprimefactors (筛1-n内的当前数中非素数的个数)的主要内容,如果未能解决你的问题,请参考以下文章

仅用月和年更改日期格式

第九周.02.KAT

htaccess mod_rewrite - 覆盖多个参数并读取未覆盖的参数

G - G ZOJ - 2723 (素数打表+set)

在 Android 中发送和接收 SMS 和 MMS(Kit Kat Android 4.4 之前)

1059. Prime Factors (25)