c语言孪生素数问题,我多输出了(23,25)

问题描述:

相差为2的两个素数称为孪生素数。例如,3与5,41与43等都是孪生素数。设计程序求出指定区间上的所有孪生素数对。区间上限和下限由键盘获取。

**输入格式要求:"%ld,%ld" 提示信息:"Please input c and d(c>2):"
**输出格式要求:"(%ld,%ld)"

程序运行示例如下:
Please input c and d(c>2):10,100
(11,13)(17,19)(29,31)(41,43)(59,61)(71,73)



#include <stdio.h>
#include <math.h>
int isPrime(long int n){
    if(n == 1) return 0;
    int i;
    for(i = 2;i <= sqrt(n);i++){
        if(n % i == 0){
            return 0;
        }
    }
    return 1;
}
int main()
{
    long int m,n,i;
    printf("Please input c and d(c>2):");
    scanf("%ld,%ld",&m,&n);
    for(i = m;i <= n - 2;i++){
        if(isPrime(i) && isPrime(i+2)){
            printf("(%ld,%ld)",i,i+2);
        }
    }
}