View Code of Problem 120

#include<iostream>
#include<cmath>

using namespace std;

int isprime(int n){
    if(n==0||n==2||n==3) return 1;//0不是素数,题目有问题
    if(n%6!=1&&n%6!=5) return 0;
    for (int  i = 5; i <= sqrt(n); i+=6)
    {
       if(n%i==0||n%(i+2)==0) return 0;
    }
    return 1;
}

int main(){
    int flag=0,sum;
    int h1,m1,h2,m2,a=0,b=0;
    while(~scanf("%d:%d%d:%d",&h1,&m1,&h2,&m2)){
         sum=0;
         a=h1*60+m1;
         b=h2*60+m2;
        //if(a==0&&b==0) sum++;
         for(int i=a;i<=b;i++){
            
             if(isprime(i/60*2500+i%60)) sum++;
        }
        
         printf("%d\n",sum);
        
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 120