c语言 查找并输出满足给定条件的一组整数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 查找并输出满足给定条件的一组整数相关的知识,希望对你有一定的参考价值。

编写main函数,输入两个整数保存到n1和n2(n1<n2)中,查找并保存n1~n2之间满足以下条件的所有整数x:x是素数且x2的各位数字互不相同。输出找到的所有整数及每个整数的平方值。
例如,1117是素数且11172=1247689,1247689的各位数字互不相同,因此1117是满足这一条件的整数。

#include <stdio.h>

int main()

    int k, n, n1, n2;
    scanf("%d%d", &n1, &n2);
    for(n=n1; n<=n2; n++)
    
        int s[10] = 0;
        for(k=2; k<=n/2; k++)    // 判断素数
            if(n%k==0)
                break;
        if(k<=n/2)    // n不是素数
            continue;
        k = n * n;
        while(k>0)    // 统计 n*n 的各数字个数
        
            s[k%10]++;
            k /= 10;
        
        for(k=0; k<10; k++)    // 检查各数字的个数
            if(s[k]>1)
                break;
        if(k<10)    // 有数字相同
            continue;
        printf("%d  %d\\n", n, n*n);
    

参考技术A void main()

int n1,n2;
printf("输入第1个整数:n1\\n");
scanf("%d",&n1);
printf("输入第2个整数:n2\\n");
scanf("%d",&n2);
for(int i = n1; i <= n2; i ++)

bool sushu = true;
for (int j = 2; j < i; j ++)

if(i % j == 0)  

sushu = false;
break;


if (sushu)

//su shu
char tmp[20] = 0;
sprintf(tmp, "%d", i * i);
bool found = true;
for (int n = 0; n < 20; n ++)

char ch = tmp[n];
if(ch != 0)


for (int m = n+1; m < 20; m ++)

if(ch == tmp[m])

found = false;
break;


if (!found)

break;



if(found)
printf("num: %d \\n", i);


return;

本回答被提问者采纳

R语言-查找满足条件的数并获取索引

1、在R语言中,怎样找到满足条件的数呢?

比如给定一个向量c2。要求找到数值大于0的数:

> c2
 [1] 0.00 0.00 0.00 0.00 0.00 0.00 0.06 0.09 0.20 0.09 0.08 0.14 0.14 0.23
[15] 0.08 0.06 0.12 0.20 0.14 0.11 0.20 0.14 0.17 0.15 0.18 0.15 0.20 0.12
[29] 0.23 0.08 0.12 0.08 0.23 0.12 0.08 0.17 0.18 0.17 0.12 0.17 0.14 0.18
[43] 0.11 0.27 0.06
> c2[c2>0]
 [1] 0.06 0.09 0.20 0.09 0.08 0.14 0.14 0.23 0.08 0.06 0.12 0.20 0.14 0.11
[15] 0.20 0.14 0.17 0.15 0.18 0.15 0.20 0.12 0.23 0.08 0.12 0.08 0.23 0.12
[29] 0.08 0.17 0.18 0.17 0.12 0.17 0.14 0.18 0.11 0.27 0.06
>

2、找到了满足条件的数,但怎样获取这些数在原向量中的位置(或索引呢)?

答案是使用which()函数。

首先找到满足大于0的数列:

> c2>0
 [1] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
[13]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
[25]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
[37]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE

其次,依据该数列标识。就能找到相应的索引了。

> which(c2>0)
 [1]  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
[25] 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

3、查找推断

(1)推断至少一个数满足条件

比如推断向量中至少有一个小于或等于零的数

> any(c2<=0)
[1] TRUE

(2)推断全部的数都满足条件

比如推断全部的数都大于0,推断全部的数都大于等于0:

> all(c2>0)
[1] FALSE
> all(c2>=0)
[1] TRUE
>




以上是关于c语言 查找并输出满足给定条件的一组整数的主要内容,如果未能解决你的问题,请参考以下文章

C语言如何实现满足多条件匹配简单过滤问题

【C语言】查找:给定有10个元素的整数数组,输入一个数,在数组中查找是该数

在c语言中输入数组两个数组,查找重复元素并输出怎么写啊

如何用c语言从一组给定数中找到一个数或者几个数的和使其值最接近指定的数

如何用c语言从一组给定数中找到一个数或者几个数的和使其值最接近指定的数

C语言试题五十六之计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。