首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

天勤OJ 标题1135: 素数

2013-02-19 
天勤OJ 题目1135: 素数题目描述输入一个整数n(2n10000),要求输出所有从1到这个整数之间(不包括1和这个

天勤OJ 题目1135: 素数
题目描述

输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。

 
输入

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

 
输出

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

 
样例输入
70
 
样例输出
11 31 41 61
 

/**********************************   日期:2013-2-12*   作者:SJF0115*   题号: 天勤OJ 题目1135: 素数*   来源:http://acmclub.com/problem.php?id=1135*   结果:AC*   来源:2008年北京航空航天大学计算机研究生机试真题*   总结:**********************************/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int main(){    int n,i,j;    int prime[10001];//素数表    //freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);    while(scanf("%d",&n)!=EOF)    {//筛法求素数        for(i = 2;i < n;i++){            //偶数不是素数            if(i % 2 == 0){                prime[i] = 0;            }            //奇数            else{                prime[i] = 1;            }        }        for(i = 3;i < sqrt(n);i++){            //如果当前是素数进行调整            if(prime[i]){                //奇数的倍数不是素数                for(j = i+i;j < n;j += i){                    prime[j] = 0;                }            }        }//输出if(n <= 11){printf("-1\n");}else{printf("11");for(i = 12;i < n;i++){if(prime[i] && i%10 == 1){printf(" %d",i);}}printf("\n");}    }    return 0;}


热点排行