7-157 输出最小的正整数

输入n个整数,找出最小的正整数并输出。

输入格式:

第一行输入一个正整数n(n<1000),第二行输入n个整数,用空格隔开。

输出格式:

输出一个整数为n个输入的整数中最小的正整数,如果没有找到,输出"not found"。

输入样例:

3
8 5 9

输出样例:

5

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

#include <stdio.h>
int main() {
    long n, min = 0, m = 0;
    scanf("%ld", &n);
    for (int i = 0; i < n; ++i) {
        scanf("%ld", &m);
        if (i == 0 && m > 0) {
            min = m;
        }
        if (m < min && m > 0) {
            min = m;
        }
    }
    if (min != 0) {
        printf("%ld", min);
    } else {
        printf("not found");
    }
    return 0;
}

 

### 回答1: 以下是1000以内的素数列表: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997。 其中,素数是指只能被1和本身整除的正整数,2是最小的素数。 ### 回答2: 求1000以内的素数可以采用筛选法来进行。首先,我们可以创建一个长度为1000的布尔数组,用来存储每个数字是否是素数的标记。初始时,将数组中的每个元素都标记为True,表示它们都是素数。然后,我们从2开始遍历到1000,对于每个数字i,如果它被标记为素数,那么我们将它之后的所有倍数(2i,3i...)标记为非素数。最后,所有未被标记为非素数的数字即为1000以内的素数。 以下是使用Python语言实现的代码: ``` def find_prime_numbers(limit): is_prime = [True] * limit # 初始化每个数字都是素数 is_prime[0] = is_prime[1] = False # 0和1是素数 for i in range(2, int(limit**0.5) + 1): # 从2到sqrt(limit)遍历 if is_prime[i]: # 如果i是素数 for j in range(i*i, limit, i): # 将i的倍数标记为非素数 is_prime[j] = False prime_numbers = [] # 存储素数 for i in range(limit): if is_prime[i]: prime_numbers.append(i) return prime_numbers limit = 1000 prime_numbers = find_prime_numbers(limit) print(prime_numbers) ``` 通过运行上述代码,可以输出1000以内的所有素数:[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997]。 ### 回答3: 求1000以内的素数是一个数学问题,素数指的是只能被1和自身整除的正整数。为了求解1000以内的素数, 可以使用试除法或者埃拉托斯特尼筛法等方法进行计算。 试除法是一种较为简单的方法,在这个方法中,我们从2开始逐个除以小于这个数的所有可能因子来判断是否为素数。如果一个数无法被小于这个数的任何因子整除,则它是一个素数。 根据试除法,对小于等于1000的每个数进行逐个判断: - 对于2,它是一个素数。 - 对于3,它也是一个素数。 - 对于4,它可以被2整除,所以是素数。 - 对于5,它是一个素数。 - 对于6,它可以被2整除,所以是素数。 - 对于7,它是一个素数。 - 对于8,它可以被2整除,所以是素数。 - 对于9,它可以被3整除,所以是素数。 - 对于10,它可以被2整除,所以是素数。 - 对于11,它是一个素数。 - 以此类推... 通过这样的方法我们可以确定1000以内的素数为:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,6771,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727733,739,743,751,757761,769,773,787797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997。 以上就是1000以内的素数的列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值