问题标题: 酷町堂:2941 特殊质数(30豆)

0
0
已解决
黄依成
黄依成
中级天翼
中级天翼
#include<iostream>
#include<cmath>
using namespace std;
int n,x,y,cnt=1;
bool zs(int x){
	if(x==1) return false;
	for(int i=2;i<=sqrt(x);i++)
		if(x%i==0)
			return false;
	return true;
}
int main(){
	x=pow(10,n-1);
	y=pow(10,n)-1;
	cin>>n;
	for(int i=x;i<=y;i++){
		int t=i;
		bool a[10]={0},f=true;
		while(t){
			if(zs(t)){
				a[cnt]=true;
			}
			t/=10;cnt++;
		}
		for(int j=1;j<=n;j++){
			if(!a[j]){
				f=false;
			}
		}
		if(f) cout<<i<<endl;
	}
	return 0;
}

没有输出

黄依成在2020-08-10 21:54:39追加了内容

严重感觉之前写太复杂了,改了一下

#include<iostream>
#include<cmath>
using namespace std;
int n,x,y;
bool zs(int x){
	if(x==1) return false;
	for(int i=2;i<=sqrt(x);i++)
		if(x%i==0)
			return false;
	return true;
}
int main(){
	x=pow(10,n-1);
	y=pow(10,n)-1;
	cin>>n;
	for(int i=x;i<=y;i++){
		int t=i;
		bool f=true;
		while(t){
			if(!zs(t)){
				f=false;
			}
			t/=10;
		}
		if(f) cout<<i<<endl;
	}
	return 0;
}

 


0
已采纳
包涵宇
包涵宇
中级天翼
中级天翼

你的思路错了

先找出1~9的质数:2.3.5.7,用数组存起来

然后DFS填数,就填这个数组

O(4^8)

(不会就别作了)

望采纳!

0
0
黄依成
黄依成
中级天翼
中级天翼

顶!

黄依成在2020-08-11 08:12:42追加了内容

顶!

黄依成在2020-08-11 11:04:49追加了内容

顶!

0
我要回答