乐瑜 发表于 2020-11-15 20:59:04

1000~9999的数包括1000吗?

这个题对1000的输出这里有疑问,这么问需不需要判断1000呢,因为我输出的结果里有1000,但是1000的千位、百位、个位之和不是素数。
/*找出所有1000~9999之间的整数,且满足千位、百位、个位之和为素数的数*/
#include<stdio.h>
int suShu(int s){
        int i,flag=0;
        for(i=2;i<s;i++){
                if(s%i==0){
                        flag=1;
                        break;
                }
        }
        return flag;
}
void main()
{
        int i,sum=0,n=0;
        for(i=1000;i<10000;i++){
                sum=i/1000+i/100%10+i/10%10+i%10;
                if(suShu(sum)==0){
                        printf("%d ",i);
                        n++;
                }
        }
        printf("%d",n);
}

昨非 发表于 2020-11-15 21:02:04

那就把1000去掉呗

只要素数判断没问题,带不带1000根本不影响结果啊

baige 发表于 2020-11-15 21:06:52

素数判断加个小于等于1返回1,小于等于1不是素数。

baige 发表于 2020-11-15 21:10:16

/*找出所有1000~9999之间的整数,且满足千位、百位、个位之和为素数的数*/
#include<stdio.h>
int suShu(int s) {
        if(s <= 1)return 1;
        int i,flag=0;
        for(i=2; i<s; i++) {
                if(s%i==0) {
                        flag=1;
                        break;
                }
        }
        return flag;
}
int main(void) {
        int i,sum=0,n=0;
        for(i=1000; i<10000; i++) {
                sum=i/1000+i/100%10+i/10%10+i%10;
                if(suShu(sum)==0) {
                        printf("%d ",i);
                        n++;
                }
        }
        printf("%d",n);
}

乐瑜 发表于 2020-11-15 21:19:18

昨非 发表于 2020-11-15 21:02
那就把1000去掉呗

只要素数判断没问题,带不带1000根本不影响结果啊

好的,谢谢

乐瑜 发表于 2020-11-15 21:19:59

baige 发表于 2020-11-15 21:10


好的,谢谢
页: [1]
查看完整版本: 1000~9999的数包括1000吗?