查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数: (1)该数的十进制表示中有且仅有两个相同的数字位; (2)该数是素数。
2017-08-05 18:44
459 查看
查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数:
(1)该数的十进制表示中有且仅有两个相同的数字位;
(2)该数是素数。
#include <stdio.h>
void Search(int n1, int n2)
{
int i = 0, j = 0, k = 0;
int m = 0, n = 0;
int temp = 0;
int t = 0;
int flag = 0;
int count = 0;
int huanhang = 0;
int Arr[10] = {0};
for (i = n1; i < n2; i++) //先在n1到n2之间找到素数
{
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 1;
}
}
if (flag == 0)
{
if (i > 10)
{
temp = i;
while (temp)
//取出各位数放到数组里
{
Arr[k] = temp % 10;
temp /= 10;
k++;
}
for (m = 0; m < k - 1; m++) //遍历数组,寻找两个相同的数
{
t = Arr[m];
for (n = m + 1; n < k; n++)
{
if (t == Arr
)
{
count++;
//如果相同,计数器记录相同的次数
}
}
}
if (count == 1)
{
huanhang++;
if (huanhang % 10 == 0)
{
printf ("\n");
}
printf ("%6d", i); //一次相同的就是要找的数,并且打印,10个换行
}
count = 0;
k = 0;
}
}
flag = 0;
}
printf ("\n");
}
int main()
{
int n1 = 0;
int n2 = 0;
printf ("please input n1 and n2 :");
scanf ("%d%d", &n1, &n2);
if (n1 > n2 || n1 < 0 || n2 < 0 || n1 >= 32768 || n2 >= 32768) //判断输入的范围是否符合0,32768
{
printf ("error!\n");
return -1;
}
Search(n1, n2);
return 0;
}
(1)该数的十进制表示中有且仅有两个相同的数字位;
(2)该数是素数。
#include <stdio.h>
void Search(int n1, int n2)
{
int i = 0, j = 0, k = 0;
int m = 0, n = 0;
int temp = 0;
int t = 0;
int flag = 0;
int count = 0;
int huanhang = 0;
int Arr[10] = {0};
for (i = n1; i < n2; i++) //先在n1到n2之间找到素数
{
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 1;
}
}
if (flag == 0)
{
if (i > 10)
{
temp = i;
while (temp)
//取出各位数放到数组里
{
Arr[k] = temp % 10;
temp /= 10;
k++;
}
for (m = 0; m < k - 1; m++) //遍历数组,寻找两个相同的数
{
t = Arr[m];
for (n = m + 1; n < k; n++)
{
if (t == Arr
)
{
count++;
//如果相同,计数器记录相同的次数
}
}
}
if (count == 1)
{
huanhang++;
if (huanhang % 10 == 0)
{
printf ("\n");
}
printf ("%6d", i); //一次相同的就是要找的数,并且打印,10个换行
}
count = 0;
k = 0;
}
}
flag = 0;
}
printf ("\n");
}
int main()
{
int n1 = 0;
int n2 = 0;
printf ("please input n1 and n2 :");
scanf ("%d%d", &n1, &n2);
if (n1 > n2 || n1 < 0 || n2 < 0 || n1 >= 32768 || n2 >= 32768) //判断输入的范围是否符合0,32768
{
printf ("error!\n");
return -1;
}
Search(n1, n2);
return 0;
}
相关文章推荐
- 查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数: (1)该数的十进制表示中有且仅有两个相同的数字位; (2)该数是素数。
- 查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数: (1)该数的十进制表示中有且仅有两个相同的数字位; (2)该数是素数。
- 查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数: (1)该数的十进制表示中有且仅有两个相同的数字位; (2)该数是素数
- 查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数: (1)该数的十进制表示中有且仅有两个相同的数字位; (2)该数是素数
- /查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数
- C语言编程练习——查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数:
- Linux下的C语言编程——查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数
- 作业 4 函数应用 输出80到120之间的满足给定条件的所有整数,条件为构成该整数的每位数字都相同
- 设a b c均为0到9之间的数字,abc,bcc是两个三位数,且有:abc+bcc=532,求满足条件的所有a,b,c
- 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。 现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数
- 输入一个整数,如果该整数大于1000,则输出“big”,如果该整数介于100到1000之间(包含两个边界),则输出“middle”,如果上面两种情况都不满足,输出”small“
- 牛牛和15朋友来玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个价值。分割田地的方法是横竖各切三刀,分成26份,作为领导干部,牛牛总是会选择其中总价值最小的一份田地,作为牛牛最好的朋友,你希望牛牛取得的田地价值和尽可能大,你知道这个值最大可以是多少吗? 输入两个整数n和m(1≤n,m≤75)表示田地的大小,接下来n行,每行包括m个0-9之间的数字,表示每块
- 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一
- 求两个整数之间的所有素数
- 99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同
- 判断任一给定整数N是否满足条件: 它是完全平方数,又至少有两位数字相同,如144、676等。
- 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。
- 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一
- 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一
- 设正整数n的十进制表示为n=ak……a1a0(0<=ai<=9,0<=i<=k,ak!=0),n的个位为起始数字的数字的正负交错之和T(n)=a0+a1+……+(-1)kak,证明:11|n的充分必要条件是11|T(n);(整除理论1.1.2))