PAT甲级1015笔记记录 测试点3未通过

PAT甲级1015笔记记录 测试点3未通过

什么水题啊啊啊啊啊啊啊我错了啊啊啊啊啊啊我过不去第三个点啊啊啊啊啊啊啊啊什么玩意儿啊啊啊啊啊啊啊啊啊为什么第三个过不去啊啊啊啊啊啊啊你是智障嘛啊啊啊啊啊啊
本智障第三个测试点过不去代码如下!

#include<stdio.h>
#include<string>
#include<iostream>
#include<vector>
using namespace std;
#define MAXSIZE 30
typedef long long LL;



int toDec(string str, int index) {
	//转换成十进制
	LL sum = 0;
	LL tempindex = 1;
	for (int i = str.size()-1; i >=0 ; i--,tempindex*=index)
		sum += tempindex*(str[i]-'0');	
	return sum;
}


//十进制转换成以toIndex为基数的数值
int toIndexNum(string str, int toIndex) {
	LL left = toDec(str, 10), temp_remain = 0;//剩下的未处理完的数值、余数
	while (left >= toIndex) {
		temp_remain = temp_remain * 10 + (left/toIndex);
		left = left%toIndex;
	}
	temp_remain = temp_remain * 10 + (left%toIndex);
	return temp_remain;
}




//判断是否为素数
bool prime(int checknum) {
	int i = 2;
	while (i < checknum) {
		if (checknum%i == 0)break;
		i++;
	}

	if (i == checknum)return true;
	else return false;
}



bool reversiblePrime(string str,int index) {
	
	string str2=to_string(toIndexNum(str,index));///?????
	string tempstr = str2;
	int k = 0;
	for (int i = str2.size() - 1; i >= 0; i--) {
		tempstr[k] = str2[i]; k++;??????????????????????????????
	}
	if (prime(toDec(tempstr, index)))return true;
	else return false;
}



int main() {
	
	string N;///100000
	vector<string> E;
	int D;
	while (true)
	{
		cin >> N;
		
		if (N[0]=='-')break;
		cin >> D;
		if (toDec(N,10)!=1 && toDec(N, 10) != 0&& reversiblePrime(N, D))
			E.push_back("Yes");
		else E.push_back("No");

	}
	int e = 0;
	while (e<E.size())
	{
		cout << E[e]; e++;
		if (e < E.size())cout << endl;
	}
	return 0;
}

1、原题参照PAT

可逆转素数是指在一个素数中,翻转过来它仍然是一个素数。比如73反过来37也是一个素数。
现在给你任意两个正整数N(<10的5次方) and D (1<D≤10),你被期待解出如果N是一个以D为基数的可逆转素数。
输入:每个用例占据一行包含两个整数N和D,这个输入以negative N结束。(负数N结束??)
输出:每一行打印Yes 或者No;

2、单词

  • Reversible -adj. 可逆的;可撤消的;可反转的 -n. 双面布料
  • Prime [praɪm] -n. (prime) 盛年,鼎盛时期 -adj. (prime) 主要的,首要的;最好的;典型的;最适宜的;素数的 -v. (prime) 使准备好 -n. (美、法)普赖姆(人名)
  • Reverse -v. 颠倒;撤销;反转;交换;放弃立场;倒车;打对方付费的电话;(使铅字、图案)印成白或浅色 -n. 逆向;相反;背面;倒档;失败;(美橄)横式传球;(翻开书的)左手页 -adj. 相反的;背面的;颠倒的;反身的;(地层)逆断的
  • Negative -adj. [数] 负的;消极的;否定的;阴性的 -n. 否定;负数;[摄] 底片 - vt. 否定;拒绝
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值