大一,学习c语言,实验报告求帮助
c吧
全部回复
仅看楼主
level 1
wy必胜 楼主
找出100-900之间的无暇素数。所谓无暇素数是指本身为素数,且其逆序数也是素数的数。例如:113是一个素数,311也是一个素数,113就是无暇素数。
自己写的程序如下图,结果运行结果是这样。求助[不高兴]
2018年05月09日 08点05分 1
level 1
wy必胜 楼主
2018年05月09日 08点05分 2
level 10
想问什么
2018年05月09日 09点05分 3
运行结果是素数,要求的是无暇素数
2018年05月09日 09点05分
level 1
wy必胜 楼主
明显运行结果就是错的,这些数有的并不是无暇素数
2018年05月09日 09点05分 4
level 10
#include "stdafx.h"
#include<stdio.h>
#include<math.h>
void main()
{
int a, b, c, i, j, k, sum, l, p;
for (i = 100; i <= 900; i++)
{
k = 1;
for (j = 2; j<i; j++)
if (i%j == 0)
k = 0;
if (k)
{
a = i / 100;
b = (i - 100 * a) / 10;
c = i - 100 * a - 10 * b;
sum = 100 * c + 10 * b + a;
}
else {
continue;
}
l = 1;
for (p = 2; p<sum; p++)
if (sum%p == 0)
l = 0;
if (l)
{
printf("%d\n", i);
}
}
}
2018年05月09日 09点05分 5
你是专业写c语言的吗?我有些地方看不明白?我专业不是学这个的,是为了计算机等级考试。
2018年05月09日 11点05分
@wy必胜 等级考试,自己得练,不然基础的不会
2018年05月09日 11点05分
谢谢,现在大一,正在学当中
2018年05月09日 11点05分
@wy必胜 加油
2018年05月09日 11点05分
level 1
int j, tmp1, tmp2;
for (int num = 100; num < 900; num++)
{
j = 0;
for (int i = 2;; i++)
{
tmp1 = num,tmp2 = 0;
while (tmp1)
{
tmp2 = tmp2 * 10 + tmp1 % 10;
tmp1 /= 10;
}
if (i < num && num % i == 0)j++;
if (i < tmp2 && tmp2 % i == 0)j++;
if (i >= num &&i >= tmp2)break;
}
if (j == 0)
printf("%d\n",num);
}
2018年05月10日 02点05分 7
1