解题思路:
注意事项:
参考代码:
#include<bits/stdc++.h> using namespace std; //判断素数这里需要检查的范围为,2~sqrt(n) bool judgeZhishu(int n){ for(int i=2;i<=sqrt(n);i++){ if(n%i==0) return false; } return true; } int main(){ int n; cin>>n; int max=pow(10,n)-1; int min=2*pow(10,n-1); //因为第一位数最小为2,这样开始会提高效率 for(int i=min;i<=max;i++){ int k=n; //通过while来逐步判断 ,第1位数,第1,2位数,第1,2,3位数。可以提高很大的效率 。 while(k>0) { if(judgeZhishu(i/pow(10,k-1))) k--; else break; } if(k==0) cout<<i<<endl; else { i=i-1+pow(10,k-1);//如果在某一步的数不为素数,那么在这个数的该位上+1 } } }
0.0分
2 人评分
A+B for Input-Output Practice (VI) (C++代码)浏览:417 |
母牛的故事 (C语言代码)浏览:435 |
【出圈】 (C语言代码)浏览:796 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:587 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:616 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:565 |
Cylinder (C语言描述+详细分析)浏览:3265 |
回文数字 (C语言代码)浏览:2510 |
矩阵加法 (C语言代码)浏览:1722 |
核桃的数量 (C语言代码)浏览:872 |