解题思路,简单素数判定,计算数量 输出就可以了
#include<stdio.h>
int prime(int n)
{
int i,flag=1;
for(i=2;i*i<=n;i++)
{
if(n%i==0)
{
flag=0;
break;
}
}
return flag;
}
int main()
{
int n,m,amont=2,count=0,space=0;
scanf("%d %d",&n,&m);
while(count<n-1)
{
if(prime(amont))
{
count++;
}
amont++;
}
while(count<m)
{
if(prime(amont))
{
count++;
space++;
if(space%10!=0&&count!=m)
printf("%d ",amont);
else
printf("%d\n",amont);
}
amont++;
}
return 0;
}
python代码思路一样但是某个数据超时
def prime(n):
flag=True
i=2
if(n<2):
flag=False
else:
while(i*i<=n):
if n%i==0:
flag=False
break
i=i+1
return flag
s=input().split()
n=int(s[0])
m=int(s[1])
count=0;
space=0;
a=2
while(count<n-1):
if(prime(a)):
count=count+1
a=a+1
while(count<m):
if(prime(a)):
count+=1
space+=1
if space%10!=0 and count!=m:
print(a,end=' ')
else:
print(a)
a=a+1