"Напишите программу, которая считает количество простых чисел в заданной последовательности и выводит ответ на экран." Вот код:
st = 0
k = 0
while True:
a = int(input("Введите число: "))
if len(str(a)) > 0:
for i in range(2, a):
if a % i == 0 or a == i:
st += 1
if st <= 0:
k += 1
else:
continue
print(k)
Выдает ошибку:
builtins.ValueError: invalid literal for int() with base 10: ''
Почему?
Программа написана на языке C# (.NET Framework)
- Если число должно выдаваться пользователем:
using System;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
while (true)
{
int o = Int32.Parse(Console.ReadLine());
if (o < 100 || o > 999)
{
Console.WriteLine("Ошибка!");
Console.ReadLine();
}
else
{
int a = o / 100,
b = (o / 10) % 10,
c = o % 10;
String x = Convert.ToString(b) + Convert.ToString(a) + Convert.ToString(c);
Console.WriteLine(x);
Console.ReadLine();
}
}
}
}
}
- Если число должно выдаваться с запуском программы:
using System;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
while (true)
{
Random rnd = new Random();
int o = rnd.Next(100, 999),
a = o / 100,
b = (o / 10) % 10,
c = o % 10;
String x = Convert.ToString(b) + Convert.ToString(a) + Convert.ToString(c);
Console.WriteLine(o);
Console.WriteLine(x);
Console.ReadLine();
}
}
}
}
}
#include <iostream>
#include <cmath>
using namespace std;
signed main()
{
setlocale(LC_ALL, "Rus");
int N;
bool haveZero = false, haveOne = false;
cin >> N;
N = abs(N);
while(N>0){
if(N % 10 == 0)
haveZero = true;
if(N % 10 == 1)
haveOne = true;
N /= 10;
}
cout << "Наличие нуля: " << boolalpha << haveZero << endl;
cout << "Наличие единицы в числе: " << boolalpha << haveOne << endl;
return 0;
}