回归啦,先来一道问题(哪里错了)
  • 板块学术版
  • 楼主HY_zsy_in_2024
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/11/24 20:21
  • 上次更新2023/10/27 01:39:56
查看原帖
回归啦,先来一道问题(哪里错了)
377044
HY_zsy_in_2024楼主2022/11/24 20:21
#include<bits/stdc++.h>
using namespace std;
bool prime(int n) {
	for(int i=2; i<=sqrt(n); i++) {
		if(n%i==0) {
			return false;
		}
	}
	return true;
}
int main() {
	int a[101];
	int n,s=0,r=0,t=1;
	cin>>n;
	string sum;
	for(int i=1; i<=n; i++) {
		cin>>s;
		r=0;
		t=1;
		for(int j=s.size()-1; j>=0; j--) {
			a[i]=a[i]+(s[j]-'0')*t;
			t=t*2;
		}
		if(prime(a[i]))
			s++;
	}
	cout<<s
	    return 0;
}

题目描述 小丽同学在编程中学到了二进制数的概念,她发现,有些二进制数,如果转为10进制,就是素数,小丽把这些数称为潜在的素数;比如2进制1101011,转为10进制后为107,就是素数。请编程帮小丽找出,哪些二进制数转为10进制后,是素数,计算出这样的数有多少个?

输入 第一行是一个整数n(10<=n<=100) 接下来n行,每行是一个30位以内的2进制数

输出 一个整数代表所有转为10进制后是素数的2进制数的个数

2022/11/24 20:21
加载中...