µ±Ç°Î»Ö㺠´úÂëÃÔ >> ×ÛºÏ >> HAUT OJ 1390: ѧѧѧѧѧËØÊý--Å·À­ËØÊýɸѡ·¨
  Ïêϸ½â¾ö·½°¸

HAUT OJ 1390: ѧѧѧѧѧËØÊý--Å·À­ËØÊýɸѡ·¨

Èȶȣº20   ·¢²¼Ê±¼ä£º2023-12-04 03:31:38.0



ÎÊÌâÃèÊö£º

ÎÚÀ­À­Ï²»¶ËØÊý£¬×îеÄÒ»ÏîÒâ´óÀûÑо¿·¢ÏÖ£¬Ã¿Ìì×ö3µÀÊýѧÌ⣬»áʹÈËÄ¿´ï¶úͨ£¬ÐãÍâ»ÛÖУ¬Ó±Îò¾øÂ×£¬ÆßÇÏÁáçç¡£Ò»Ì죬ÎÚÀ­À­ÔÚÑо¿ËØÊýµÄʱºò·¢ÏÖ£¬ËùÓÐ n>5 µÄËØÊý¸öλÊýÒ»¶¨ÊÇ1£¬3£¬7£¬9ÖеÄÒ»¸ö¡£ÓÚÊÇ£¬ÎÚÀ­À­Ïëͳ¼ÆÒ»ÏÂÔÚСÓÚµÈÓÚnµÄÕýÕûÊýÀÓжàÉÙ¸öλÊýΪ1£¬3£¬7£¬9µÄÕýÕûÊýÊÇËØÊý

ÊäÈ룺

Ò»¸öÕýÕûÊýn¡£    (1 < n <= 1000000)

Êä³ö£º

Á½¸öÕûÊýa£¬b¡£·Ö±ðÊǸöλÊýÊÇ1£¬3£¬7£¬9µÄÕýÕûÊýµÄÊýÁ¿ a ºÍ ÆäÖÐËØÊýµÄ¸öÊý b

ÑùÀýÊäÈ룺

10

ÑùÀýÊä³ö£º

4 2



Ô­Òò·ÖÎö£º

Á½ÖÖ·½·¨£º1.ÓøùºÅ£¨ËõСѭ»·´ÎÊý£¬·ÀÖ¹³¬Ê±£©ÅжÏÊÇ·ñΪËØÊý   ²»ÔÙ½éÉÜ

                   2.Å·À­ËØÊýɸѡ·¨. 




½â¾ö·½°¸£º

ÏÈÉÏAC´úÂ룺

#include<bits/stdc++.h>
using namespace std;
int n,vi[1000005],su[1000005],cnt=0,a=1,b=0;int main(void)
{scanf("%d",&n);for(int i=2;i<=n;i++){if(i%10==1||i%10==3||i%10==7||i%10==9)a++;if(vi[i]==0){su[cnt++]=i;if(i%10==1||i%10==3||i%10==7||i%10==9)b++;}for(int j=0;j<cnt&&i*su[j]<=n;j++){vi[i*su[j]]=1;if(i%su[j]==0)break;}}printf("%d %d",a,b);return 0;
}

Å·À­ËØÊýɸѡ·¨£º

nΪһ¸öÒªÇóµÄ·¶Î§ÖеÄ×î´óÖµ£¬viÊý×éÄÃÀ´ÅжÏÊÇ·ñ±»»®È¥£¬suÊý×éÄÃÀ´´æËØÊý£¬cntÕýºÃµÈÓÚËØÊýµÄ¸öÊý

#include<bits/stdc++.h>
using namespace std;
int n,vi[1000005],su[1000005],cnt=0;int main(void)
{scanf("%d",&n);for(int i=2;i<=n;i++){if(vi[i]==0)                     //Èôû±»»®È¥£¬Ôò´æÈësuÊý×Ö×飻{su[cnt++]=i;}for(int j=0;j<cnt&&i*su[j]<=n;j++){vi[i*su[j]]=1;               //»®È¥su[j]*iµÄÊý ±ÈÈçsu[0]=2,Ôò»®È¥2*2=4 4²»ÊÇËØÊýif(i%su[j]==0)break;                   //ÏÂÃæϸËø}}return 0;
}

ÕýÌ⣺

´óÌå˼·£º¸ù¾ÝÕâ¸öi%su[j]==0Ìõ¼þÍƳö i*su[j+1]=1 ÊDz»Ó¦¸Ã½øÐеģ¨¼´ºóÃæ Ò² ´æÔÚ½«

vi[ i*su[j+1] ]=1    Õâ¸ö²Ù×÷£¬¼´Öظ´»®È¥Í¬Ò»¸öÊý£¬ÀË·Ñʱ¼ä£©

¹ý³Ì£º

i%su[j]==0 ÍƳö i=k*su[j]      È»ºóÈç¹û½Ó׎øÐУ¬²»ÖжÏÑ­»·£¨¸ù¾ÝÉÏÃæÎÒÃÇÖªµÀ»áÔì³É

vi[ i*su[j+1] ]=1 Öظ´»®È¥¸ÃÊý£© i*su[j+1]=k*su[j]*su[j+1]=( k*su[j+1] )*su[j]   ¼Ì¶øÍƳö   i*su[j+1]Ϊ su[j]µÄ k*su[j+1] ±¶

¼´ Èç¹ûÑ­»·½Ó׎øÐУ¨iÒ»Ö±±ä´ó£©£¬µ±i=k*su[j+1]ʱ£¬su[j]* Õâ¸öi£¬¼´µÈÓÚÇ°Ã棨iδ±ä´óʱºò£©µÄ  i*su[j+1] ÓÖ»áÖØл®È¥¸ÃÊý£¬»®ÁËÁ½´Î .ËùÒÔΪÁË·ÀÖ¹ÕâÖÖÇé¿ö£¬ÒªÔÚµÚÒ»´ÎÖжÏÄÚ´æÑ­»·      if(i%su[j]==0) break£» ¼Ì¶øÔÚÏÂÒ»´ÎÔÙ°Ñ  i*su[j+1] ¸ÃÊý»®È¥

ÌâÍâ»°£º

·­Á˺öà´óÀв©¿Í£¬È«²¿¿´ÁË¿´£¬×Ô¼º¾ÙÁ˾ÙÀý£¬»¨ÁËÈýËĸöСʱ²Å¸ãÃ÷°×£¬ÀáÄ¿.