链接:https://www.nowcoder.com/questionTerminal/e0fb49acb75f47e8b6fa2077d9071799
来源:牛客网
[编程题]数素数 (20)
- 热度指数:49586 时间限制:1秒 空间限制:32768K
- 算法知识视频讲解
令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数。
输入描述:
输入在一行中给出M和N,其间以空格分隔。
输出描述:
输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。
示例1
输入
5 27
输出
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
import java.util.Scanner;
import java.math.*;
public class Main {
public static void main(String args[])
{
Scanner cin=new Scanner(System.in);
while(cin.hasNextInt())
{
int m=cin.nextInt(),n=cin.nextInt();
int c=0,c1=0;
for(int i=1;i<1000000;i++) {
if(prime(i)==1) {
c++;
if(c>=m&&c<n) {
c1++;
if(c1==10) {
c1=0;
System.out.println(i);
}
else
System.out.print(i+" ");
}else if(c==n)
{
System.out.println(i);
break;
}
}
}
}
}
static int prime(int n)
{
int k=(int)Math.sqrt(n);
if(n<2) return 0;
for(int i=2;i<=k;i++)
if(n%i==0)
return 0;
return 1;
}
}
#include<iostream>
#include<cmath>
using namespace std;
int prime(int n)
{
if(n<2)return 0;
int k=(int)sqrt(n);
for(int i=2;i<=k;i++)
if(n%i==0)
return 0;
return 1;
}
int main()
{
int m,n;
while(scanf("%d%d",&m,&n)!=EOF)
{
int c=0,c1=0;
for(int i=2;i<=1000000;i++)
{
if(prime(i)){
c++;
if(c>=m&&c<n){
c1++;
if(c1==10){
cout<<i<<endl;
c1=0;
}
else
cout<<i<<" ";
}
else if(c==n){
cout<<i<<endl;
break;
}
}
}
}
}
import math
def prime(n):
if n<2:
return False
k=int(math.sqrt(n))
for i in range(2,k+1):
if n%i==0:
return False
return True
m,n=map(int,input().split())
c,c1=0,0
for i in range(1,1000000):
if prime(i):
c+=1
if m<=c<n:
c1+=1
if c1==10:
print(i)
c1=0
else:
print(i,end=' ')
elif c==n:
print(i)
break