求100-350中的所有素数,输出在窗体,再求这些素数中个位十位百位,如果三位都是素数,则输出在窗体,大佬们求算法求算法求算法!
另外还有两个小问题,inputbox返回给变量的值,如果不定义变量的数据类型,默认情况下是什么数据类型?定义了数据类型,如整形,那么这个返回的值是否就是整形?
最后一个问题是val返回的是什么数据类型?如果直接给变量定义数值数据类型、能不能进行计算?
(目前在中专/-/自己摸索学太难了,求大佬解答)
#include <stdio.h>
#include <math.h>
int f(int n)
{
int i = 0;
int q = sqrt(n);
for (i = 2; i <= q; i++ )
{
if(n % i == 0)
{
break;
}
}
if (i > q)
{
return 1;
}
else
{
return 0;
}
}
int ge(int n)
{
return n%10;
}
int bai(int n)
{
return n/100;
}
int ten(int n)
{
return (n-(bai(n)*100+ge(n)))/10;
}
int main() {
int j,t[250],h=0;
printf("100--300:");
for(j=100; j<=350; j++)
{
if(f(j)==1)
{
printf("%5d",j);
t[h]=j;
h++;
}
}
printf("\n");
printf("百位十位个位都是素数:");
for(j=0; j<h; j++)
{
if(f(bai(t[j]))==1&&f(ten(t[j]))==1&&f(ge(t[j]))==1)
{
printf("%d ",t[j]);
}
}
return 0;
}
修改如下,供参考:
#include <stdio.h>
#include <math.h>
int f(int n)
{
int i = 0;
int q = sqrt(n);
if (n <= 3) return n > 1; //修改
for (i = 2; i <= q; i++)
{
if (n % i == 0)
{
break;
}
}
return i > q; //修改
//if (i > q)
//{
// return 1;
//}
//else
//{
// return 0;
//}
}
int ge(int n)
{
return n % 10;
}
int bai(int n)
{
return n / 100;
}
int ten(int n)
{
//return (n - (bai(n) * 100 + ge(n))) / 10; //修改
return n / 10 % 10;
}
int main() {
int j, t[250] = { 0 }, h = 0; //修改
printf("100--300:");
for (j = 100; j <= 350; j++)
{
if (f(j) == 1)
{
printf("%5d", j);
t[h] = j;
h++;
}
}
printf("\n");
printf("百位十位个位都是素数:");
for (j = 0; j < h; j++)
{
if (f(bai(t[j])) == 1 && f(ten(t[j])) == 1 && f(ge(t[j])) == 1)
{
printf("%d ", t[j]);
}
}
return 0;
}
def Prime(START, END):
data = [1] * END
data[:2] = [0, 0]
for idx in range(int(END ** 0.5) + 1):
if idx > 1:
if data[idx] == 1:
for idy, _ in enumerate(data):
if idy > idx and idy % idx == 0:
data[idy] = 0
resu = [idx for idx, v in enumerate(data) if END + 1 > idx > START - 1 and v == 1]
return resu
X = Prime(100, 350)
print(X)
res = filter(lambda x: all(list(map(lambda y: y in ['2', '3', '5', '7'], str(x)))), X)
print(list(res))
'''--result
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349]
[223, 227, 233, 257, 277, 337]
'''