【程序设计】C|Python|Java编程求素数

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。

输入输出格式

输入描述:
输入有多组数据。
每组一行,输入n。

输出描述:

输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。

输入输出样例

输入样例: 100
输出样例: 11 31 41 61 71

C语言程序代码

#include <stdio.h>
//输入一个整数n(2<=n<=10000),要
//求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。
 
int isPrime(int num){
	int j;
	
	for(j = 2; j < num; j++){
		if(j != num-1 && num % j != 0){//一次循环满足条件 ,继续循环 
			continue;
		}else if(j == num-1 && num % j != 0){//循环到该数字的前一个数也满足条件 
			return num;
		}else{
			return -1;
		}	
	}
}


int main(){
	int i, num;
	scanf("%d", &num);
	
	if(num < 11){
		printf("-1");	
	}
	
	i = 11;
	while(i <= num){
		//判断其是否为素数
		int res = isPrime(i); 	
		if(res != -1){
			if(res == 11){
				printf("%d", res);
			}else{
				printf(" %d", res);
			}	
		}
		i += 10;
	}
	return 0; 
} 

Java程序代码

/**
 * 输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。
 * 输入:100
 * 输出:11 31 41 61 71
 */
public class GetPrime {
    public static void main(String[] args) {
        int i, num;
        Scanner scanner = new Scanner(System.in);
        num = scanner.nextInt();

        //如果没有输出-1
        if (num < 11){
            System.out.println(-1);
        }

        //num满足条件
        i = 11;
        while (i <= num){
            //判断i是否为素数
            for (int j = 2; j < i; j++){
                if (i % j != 0){
                    if (j != i -1)
                        continue;
                    else{
                        if (i == 11)
                            System.out.print(i);
                        else
                            System.out.print(" "+ i);
                    }

                }else{
                    break;
                }
            }

            i += 10;
        }
    }
}

Python程序设计

# 定义函数求素数
def isPrime(num):
    j = 2
    while j < num:
        if num % j != 0:  # 素数取余除了1和本身都不为零
            if j != num-1:
                j += 1
                continue
            else:
                return num
        else:
            return -1



if __name__ == '__main__':
    i = 11
    numStr = input()
    number = eval(numStr)

    if number < i:
        print(-1)

    while number >= i:
        res = isPrime(i)
        if res != -1:
            if res == 11:
                print(res, end='')
            else:
                print(" %d" % res, end="")
        i+=10


结果测试
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值