C语言求100以内各个位数之积小于各个位数之和的素数

如题所述

#include <stdio.h>

int isprime(int n)

{

    int i;

    if(n<2)

        return 0;

    for(i=2;i*i<=n;++i)

        if(n%i==0)

            return 0;

    return 1;

}

int sum(int n)

{

    int t;

    for(t=0;n;n/=10)t+=n%10;

    return t;

}

int pdt(int n)

{

    int t;

    for(t=1;n;n/=10)t*=n%10;

    return t;

}

int main()

{

    int i;

    for(i=2;i<100;++i)

    {

        if(isprime(i)&&pdt(i)<sum(i))

        {

            printf("%d\n",i);

        }

    }

    return 0;

}

温馨提示:答案为网友推荐,仅供参考
相似回答