内存:128  时间:1

题目描述

小奶瓶都要上大三了,大一的高数还挂着呢,不光他头痛,教高数的"高"老师也是无奈,为了不必要的麻烦,"高"老师决定尽全力给小奶瓶加分,听说小奶瓶C语言学得不错,"高"老师就让他编写一个“求两个数之间的素数个数”的程序并许诺完成后给小奶瓶加59分。这样好的机会小奶瓶当然不能放过,但是他最近公务繁忙,不能及时完成这个程序。现在他把已经写的差不多的程序给你,让你帮他完成这个任务。请你帮帮这个可爱的小男生吧~

#include <stdio.h>
int primes(int n,int m);    /*求n,m之间素数个数*/
int is_prime(int n);    /*判断是否为素数*/
int main()
{
    int number; /*素数个数*/
    int n,m;
    scanf("%d %d",&n,&m);
    number=primes(n,m); /*调用求素数个数的函数,并将返回值赋值给number*/
    printf("%d\n",number);
    return 0;
}

提交时只需提交primes和is_prime两个函数

请注意:当n或者m小于2时的情况

输入

两个数

输出

两个数之间的素数个数

样例输入

6 15

样例输出

3

提示

n不一定小于m~

代码如下

import java.util.*;
import java.text.DecimalFormat;
public class Main
{
    public static void main(String args[]) throws Exception
    {   
        DecimalFormat df = new DecimalFormat("0000000");
        Scanner cin = new Scanner(System.in);
        int min = cin.nextInt();
        int max = cin.nextInt();
        int temp;
        if(min > max){
            temp = min;
            min = max;
            max =temp;
        }
            
        int i,sum=0;
        for(i=min;i<=max;i++){
            if(isPrime(i))
                sum++;
        }
        System.out.println(sum);
    }  
    public static boolean isPrime(int a) {
        boolean flag = true;
        if (a < 2) {
            return false;
        } 
        else {
            for (int i = 2; i <= Math.sqrt(a); i++) {
                if (a % i == 0) {
                    flag = false;
                    break;
                }
            }
        }
        return flag;
    }
}

代码来源于互联网,仅供参考!