Să se scrie un program C care afișează numerele naturale prime de patru cifre cu proprietatea că au suma cifrelor sau produsul cifrelor lor egal cu o valoare v citită de la tastatură.
Răspunsuri la întrebare
Răspuns de
1
Varinata 1) mai putin eficienta (mai lenta)
#include <stdio.h>
int main() {
int v;
scanf("%d", &v);
for(int i = 1000; i <= 9999; i++){
int ci = i, s = 0, p = 1;
int d = 2;
while(d <= ci && ci % d != 0)
d++;
if(ci == d) // este prim
{
while(ci > 0) {
s = s + ci % 10;
p = p * (ci % 10);
ci = ci / 10;
}
if(s == v || p == v)
printf("%d ", i);
}
}
return 0;
}
Varianta 2:
#include <stdio.h>
int main() {
int v;
scanf("%d", &v);
for(int i = 1009; i <= 9973; i++){
int ci = i, s = 0, p = 1;
int d = 2;
while(d * d <= ci && ci % d != 0)
d++;
if(d * d > ci) // este prim
{
while(ci > 0) {
s = s + ci % 10;
p = p * (ci % 10);
ci = ci / 10;
}
if(s == v || p == v)
printf("%d ", i);
}
}
return 0;
}
#include <stdio.h>
int main() {
int v;
scanf("%d", &v);
for(int i = 1000; i <= 9999; i++){
int ci = i, s = 0, p = 1;
int d = 2;
while(d <= ci && ci % d != 0)
d++;
if(ci == d) // este prim
{
while(ci > 0) {
s = s + ci % 10;
p = p * (ci % 10);
ci = ci / 10;
}
if(s == v || p == v)
printf("%d ", i);
}
}
return 0;
}
Varianta 2:
#include <stdio.h>
int main() {
int v;
scanf("%d", &v);
for(int i = 1009; i <= 9973; i++){
int ci = i, s = 0, p = 1;
int d = 2;
while(d * d <= ci && ci % d != 0)
d++;
if(d * d > ci) // este prim
{
while(ci > 0) {
s = s + ci % 10;
p = p * (ci % 10);
ci = ci / 10;
}
if(s == v || p == v)
printf("%d ", i);
}
}
return 0;
}
rossetta:
Incearca sa copiezi programul inca o data. Eroarea poate sa apara de la faptul ca nu s-a copiat bine
Alte întrebări interesante
Limba română,
8 ani în urmă
Franceza,
8 ani în urmă
Matematică,
8 ani în urmă
Engleza,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă