可以说是常规下的素数判断;
唯一要注意的是循环读入这个点:
该句子其实就是读取到结尾结束,在文件中标识的就是缓冲区读取完毕。这里可以用来判断神马时候输入完毕;
这里还是在判别函数里要注意两点:
第一:注意,0,1不是素数;第二:判别区间应该是2~sqrt(n),闭区间#include#include #include #include #include using namespace std;bool isPrime(int n){ if(n<=1) return false; int sqr=(int)sqrt(1.0*n); for(int i=2;i<=sqr;i++){ if(n%i==0) return false; } return true;}int d[111];int main(){ int n,radix; while(scanf("%d",&n)!=EOF){ //意思就是从缓冲区里面一直读取 if(n<0) break; scanf("%d",&radix); if(isPrime(n)==false){ printf("No\n"); }else{ int index=0; while(n!=0){ d[index++]=n%radix; n=n/radix; } for(int i=0;i