在我自己的dev中能运行为什么在这上面显示编译错误呢
查看原帖
在我自己的dev中能运行为什么在这上面显示编译错误呢
1290501
hgdhjgj楼主2024/3/12 17:36
#include<stdio.h>
#include<math.h>
bool ispalindrome(int n){//这是一个整数反转的函数例如123可以反转为321
    int s=0,k=n;
    while(k!=0){
        s*=10;
        s+=k%10;
        k/=10;
    }
    if(s==n){
        return true;
    }else{
        return false;
    }
}
bool isprime(int n){
    for(int i=3;i<=sqrt(n);i=i+2){//这里是判断i是不是质数,为什么是i<=n的开平方根呢是因为一个数是由两个比自己小的因数相乘的只要判断找出较小的那个因数如果一个数除以它它本身的因数为零的话就不是质数,而所有的数的因数都小于或等于自身开平方
        if(n%i==0){
            return false;
        }
        return true;
    }
}
    int main(){
        int a,b;
        scanf("%d %d",&a,&b);
        if(a%2==0){//这是因为所有的质数都不是偶数,只要%2为零说明是偶数,只需要继续加就可以了,否则就是奇数然后进行下面操作
            a++;
        }
       if(b>=10000000) {
        b=10000000;//这里是因为内存只会运行到7位数,再多就无法运行了,而8位数到1亿所有的数都不是质数因为所有8位数都可以被11整除
    }
    for(int i=a;i<=b;i=i+2){
        if(ispalindrome(i)&&isprime(i)){
            printf("%d\n",i);
        }
    }
    return 0;
    }

2024/3/12 17:36
加载中...