1 条题解
-
0
C :
#include <stdio.h> int a[500001]; void fun(int start,int a[],int len) { int k = start,nu=a[start]; for(int i = k ; i <=len ; i++ ) if(i%nu!=0) a[k++]=a[i]; k++; if(nu<=len) fun(start+1,a,k); } int main() { int i,n,m,count = 0; while(scanf("%d%d",&n,&m)!=EOF) { count=0; for(i = 1 ; i <= m ;i++) a[i]=2*i-1; fun(2,a,m); for(i = 1 ; i <=m ; i++) if(a[i]>n && a[i]<m) count ++; printf("%d\n",count); } return 0; }
C++ :
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<string> #include<cmath> #include<map> using namespace std; #define mmax 500010 int a[500010],b[500010]; int mx=mmax; void fun() { int i,j,kk,km,per; a[1]=1; for(i=2;i<mx;i++) a[i]=a[i-1]+2; per=2; while( per+a[per] < mx) { kk=1; for(j=1;j<mx;j++) if(j%a[per]!=0) b[kk++]=a[j]; mx=kk+1; for(j=1; j<mx; j++) a[j]=b[j]; per++; } } int main() { int i,j,k,t,count,m,n; while (cin>>m>>n) { mx=n; fun(); count=0; for(int j=1;j<n;j++) { if(a[j]>m && a[j]<n) count++; } cout<<count<<endl; } return 0; }
Java :
import java.util.ArrayList; import java.util.Scanner; public class Main{ public static ArrayList<Integer> temp; public static int flag; public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()) { int a=sc.nextInt(); int b=sc.nextInt(); temp=new ArrayList(); for(int i=0;i<b/2;i++) { temp.add(i*2+1); } flag=1; jian(); int s=0; for(int i=0;i<temp.size();i++) { if(temp.get(i)>a&&temp.get(i)<b) { s++; } } System.out.println(s); } } public static void jian() { if(flag>=temp.size()) return; int x=temp.get(flag); for(int i=temp.size()-1;i>-1;i--) { if((i+1)%x==0) { temp.remove(i); } } flag++; jian(); } }
- 1
信息
- ID
- 682
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者