代码一:
#include<bits/stdc++.h>
using namespace std;
int a[4] = {1, 4, 9, 9};
bool isPrime(int n) {
for(int i = 2; i <= (int)sqrt(n); i++) {
if(n % i == 0) {
return false;
}
}
return true;
}
int main() {
int cnt = 0;
do {
int x = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
if(isPrime(x)) {
cnt++;
}
}while(next_permutation(a, a + 4));
cout << cnt;
return 0;
}
运行结果
1499
1949
4919
9419
9491
9941
6
Process returned 0 (0x0) execution time : 0.380 s
Press any key to continue.
代码二:
#include <bits/stdc++.h>
using namespace std;
int a[4]={1,9,4,9},is=0;
int main()
{
do{
int i;
int s=a[0]*1000+a[1]*100+a[2]*10+a[3];
for( i=2;i<=sqrt(s);i++){
if(s%i==0) break;
}
if(!(i<=(sqrt(s)))) {is++;
cout<<a[0]<<a[1]<<a[2]<<a[3]<<endl;}
}while(next_permutation(a,a+4));
cout<<is<<endl;
return 0;
}
运行结果
1949
4919
9419
9491
9941
5
Process returned 0 (0x0) execution time : 0.086 s
Press any key to continue.
对比代码一和代码二,可发现a[]数组,原始数据排序对结果哦是有影响,,