PAT A1015


可以说是常规下的素数判断;

唯一要注意的是循环读入这个点:


该句子其实就是读取到结尾结束,在文件中标识的就是缓冲区读取完毕。这里可以用来判断神马时候输入完毕;

这里还是在判别函数里要注意两点:
第一:注意,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

你可能感兴趣的:(c++,算法,数据结构)