首页 > 试题广场 >

素数

[编程题]素数
  • 热度指数:22736 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。

输入描述:
输入有多组数据。
每组一行,输入n。


输出描述:
输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。
示例1

输入

100

输出

11 31 41 61 71
#include <stdio.h>
int su(int n);
int su(int n){
    int i;
    for(i=2;i<n;i++){
        if (n%i==0) {
            return 0;
        }
    }
    return 1;
}

int func(int n){
    if (n%10==1) {
        return 1;
    }else {
        return 0;
    }
}

int main() {
    int n,i;
    scanf("%d",&n);
    for(i=2;i<n;i++){
        if (su(i)==1&&func(i)) {
            printf("%d ",i);
        }
    }
    return 0;
}

编辑于 2024-03-21 20:22:56 回复(0)
#include <stdio.h>
#define N 10001
int main(){
    int x;
    int a[N] = {0};
    scanf("%d", &x);
    for (int i = 2; i < N; i ++) {
        if (a[i]==0) {
            for (int j = 2; i*j<N; j ++) {
                a[i*j] = -1;
            }
        }
    }

    int flag = 0;
    for (int i = 2; i < x; i ++) {
        if (a[i]==0&&i%10==1) {
            printf("%d ", i);
            flag = 1;
        }
    }
    if (flag==0) {
        printf("-1\n");
    }
    return 0;
}
质数筛法
发表于 2023-02-13 22:20:28 回复(0)

问题信息

难度:
2条回答 10891浏览

热门推荐

通过挑战的用户

查看代码
素数