C++OJ题找出所有三位素数

题目描述

一个n位超级素数是指一个n位正整数,它的前1位,前2位,......,前n位均为素数,例如,733是个3位超级素数,因为7,73,733均为素数。输出全部的3位数超级素数。

输入

输出

全部的3位数超级素数,每行一个数

#include <stdio.h>

int isprime(int x)
{
    if (x == 0 || x == 1) return 0;
    for (int i = 2; i <= x / 2; i++)
        if (!(x % i)) return 0;
    return 1;
}

int isallprime(int x)
{
    do
    {
        if (!isprime(x)) return 0;
        x /= 10;
    }
    while (x > 0);
    return 1;
}

int main()
{
    for (int i = 111; i < 999; i++)
        if (isallprime(i)) printf("%d\n", i);
}

233
239
293
311
313
317
373
379
593
599
719
733
739
797

请问有数据吗?