c/python_用函数Prime(int n, int m, int *num)实现获得n到m之间所有的素数/filter函数筛选质数
problem:
输入两个数n和m(n<m),求n到m之间所有的素数,存放在一个数组中,最后打印出来。
要求,用函数Prime(int n, int m, int *num)实现获得这些素数
输入
两个数n和m(n<m)
输出
求n到m之间所有的素数,存放在一个数组中,最后打印出来。
样例输入
2
3
样例输出
2
3
c
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
//在此下方插入自定义函数对的声明:
int Prime(int m,int n,int* prime_array);
//主函数main
int main()
{
int m,n;
while( scanf("%d%d",&m,&n) != EOF)
{
int prime_array[100];
for(int i = 0;i<Prime(m,n,prime_array);i++)
printf("%d\n",prime_array[i]);
}
return 0;
}
//主函数结束.
//在下方编写自定义函数:
int Prime(int m,int n,int* prime_array)
{
int k=0;
for(int i = m;i <= n;i++)
{
int j = 2;
if(i == 0 || i == 1)
{
continue;
}
else if (i == 2 || i ==3)
{
prime_array[k++] = i;
}
else
{
for (; j * j < i + 1; j++)
{
if (i % j == 0)
{
break;
}
}
if(j*j>=i+1)
prime_array[k++] = i;
}
}
return k;//k是从0开始的.
}
python
filter prime numbers in specified range
'''
Description:
Version: 2.0
Author: xuchaoxin
Date: 2021-04-08 22:55:30
LastEditors: xuchaoxin
LastEditTime: 2021-04-10 09:35:25
'''
def is_prime(x):
""" list contains several 0 :
a empty list is False,if the len(list)>0,it is True:
if the x is prime,the list will be empty,not list is True,so return True
else, the x is not prime,the list will not be empty,the list is True,not list is False,so return False"""
if x==0 or x==1:
return False
list = [x for i in range(2, x) if x % i == 0]
# print(not list)
return not list
prime_iterator = filter(lambda x: is_prime(x), range(0, 20))
for i in prime_iterator:
print(i)

浙公网安备 33010602011771号