题目描述
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。
输入描述:
输入有多组数据。每组一行,输入n。
输出描述:
输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。
示例1
输入
100
输出
11 31 41 61 71
#include#include #include #include #include using namespace std;bool a[10010]= { 0};int b[10000];int x=0;void prime(int n)//如何求大数内的素数。{ for(int i=2; i >n; prime(n); int ct=0; for(int i=0; i
//这个题真的是简单的,但是求素数的时候我还是遇到了一个小问题,就是第二层循环,应该是从i*i那个地方开始开始标记,并且j+=i这样,比i*2开始快了2ms,求素数,如果是合数则被标记为true;
2018-9-9更:
1.考点就是如何求大数内的所有素数,不是一个一个去遍历求解,那样一定会超时,
2.而是使用了两个数组,标记是否是素数,并且将从i*i都一起标记为不是素数。
//学习了!