解题思路:通过题目得知我们要先确定一个大范围,并且获取到大范围中的所有幸运数,定义两个数组,第一个数组存放最开始的所有数据,第二个数组存放删除以后的数据,实时更新数组的范围,并在第二个数组存放完以后,将第二个数组中的所有数据转移到第一个数组,最后定义范围查找在范围内的所有幸运数
注意事项:要实时更新数组的范围,最后要将初始的最大范围重新定义
参考代码:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int m=in.nextInt();
int q=1,d=2,r=0,j=2,t=0;
t=m;
int [] a=new int[1000010];
for(int i=1;i<=m;i++) {
a[i]=i;}
while(q==1) {
int p=0,v=1;
int [] b=new int[1000010];
for(int i=1;i<=m;i++) {
if(i%j==0) {
a[i]=0;
p++;}}
for(int i=1;i<=m;i++) {
if(a[i]!=0) {
b[v]=a[i];
v++;}}
m=m-p;
for(int i=1;i<=m;i++) {
a[i]=b[i];}
j=a[d];
if(j>=m) {
q=0;
break;}
d++;}
for(int i=1;i<=m;i++) {
if(a[i]<t && a[i]>n) {
r++;}}
System.out.println(r);
}}
0.0分
1 人评分
C语言训练-角谷猜想 (C++代码)(3N+1问题)浏览:1751 |
C语言训练-素数问题 (C语言代码)浏览:998 |
C语言程序设计教程(第三版)课后习题9.8 (Java代码)浏览:1642 |
C语言程序设计教程(第三版)课后习题6.6 (C++代码)浏览:633 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:648 |
大家好,我是验题君浏览:577 |
循环入门练习5 (C语言代码)浏览:839 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:518 |
C二级辅导-温度转换 (C语言代码)浏览:732 |
C二级辅导-统计字符 (C语言代码)浏览:481 |