如题:
素数就是不能再进行等分的数。比如:2 3 5 7 11 等。
9 = 3 * 3 说明它可以3等分,因而不是素数。
我们国家在1949年建国。如果只给你 1 9 4 9 这4个数字卡片,可以随意摆放它们的先后顺序(但卡片不能倒着摆放啊,我们不是在脑筋急转弯!),那么,你能组成多少个4位的素数呢?
比如:1949,4919 都符合要求。
(ps:又是直接裂开的一天,一个小bug让我做到怀疑人生)
代码如下,应该我这种方法是比较省脑子的
#include <stdio.h>
int main()
{
int n = 0;
int i;
int a,b,c,d,t;//四位数的每个位
int x;
int y;
for(i = 1498;i<9942;i++)
{
x = 1;
y = 0;
for(a = 2;a<i;a++)
{
if(i%a==0)
{
x=0;
break;
}
}
if(x==1)
{
a = i%10;
d = i/10%10;
c = i/100%10;
b = i/1000%10;
if(a<b) {
t = a;a = b;b = t;}
if(a<c) {
t = a;a = c;c = t;}
if(a<d) {
t = a;a = d;d = t;}
if(b<c) {
t = b;b = c;c = t;}
if(b<d) {
t = b;b = d;d = t;}
if(c<d) {
t = c;c = d;d = t;}
if(a==9&&b==9&&c==4&&d==1)
{
y = 1;
printf("%d\n",i);
}
if(y==1)
{
n++;
}
}
}
printf("%d",n);
}
运行结果如下
为了找这个
小错误,我直接暴毙。
加油·~·
争取以后少出错