Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.12.2018
Сообщений: 13

Портировать код Java в С# (import java.util.Scanner)

01.11.2020, 23:20. Показов 1866. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста, конвертировать код Java в C#



Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package com.company;
import java.util.Scanner;
public class Main {
 public static long n, x, y, p,r,m,q,r1;
 public static boolean finish=false;
 public static void main(String[] args) {
 Scanner in = new Scanner(System.in);
 int vivod =0;
 System.out.println("Введите простое число p для проверки простоты
числа M(p): ");
 Main.p = in.nextInt();
 if (simplycheck(p) == 1) {
 System.out.println("Введенное число p не простое!");
 } else if (simplycheck(p) == 2) {
 System.out.println("n = " + x + "*" + x);
 } else if (simplycheck(p) == 3) {
 System.out.println("n = " + (x - y) + "*" + (x + y));
 } else if (simplycheck(p) == 0) {
 r1 = (long) (((Math.pow(2, (p / 2)) - 1) / (2 * p)));
 m = (long) (Math.pow(2, p) - 1);
 for (r=1; r<=r1; r++) {
 n = 0;
 q = 0;
 while (q<m) {
 q = (long) (r * (Math.pow(2,(n + 1)))+1);
 if (vich(2, p, q) == 1) {
 System.out.println("Найден наименьший делитель q = " + q);
 System.out.println("Число Мерсенна M(" + p + ") не является
простым.");
 vivod = 1;
 finish=true;
 break;
 } else {
 n ++;
 break;
 }
 }
 if (finish==true) {break;}
 }
 if (vivod==1){}
 else {
 System.out.println("Число Мерсенна M(" + p + ") является
простым.");
 }
 }
 }
 public static long simplycheck(long n) {
 int z=0,w=0;
 if (n%2==0){
 return 1;
 }
 else {
 x= (long) Math.sqrt(n);
 if ((x*x)==n){
 return 2;
 }
 else {
 x++;
 while ((z | w)!=1){
 if (x==((n+1)/2)){
 z=1;
 return 0;
 } else {
 long check = x*x-n;
 y=(long)Math.sqrt(check);
 if ((y*y)==check){
 w=1;
 return 3;
 } else {
 x++;
 }
 }
 }
 }
 }
 return 4;
 }
 public static long vich (long a, long k, long n) {
 long p1 =1;
 while (k!=0){
 if (k%2!=0){
 p1=(a*p1)%n;
 k=(k-1)/2;
 } else {
 k=k/2;
 }
 a=(a*a)%n;
 }
 return p1;
 }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.11.2020, 23:20
Ответы с готовыми решениями:

Java.util.Scanner
Как я могу читать ввод из консола (цифры) с помощью java.util.Scanner когда числа разделены любым количеством пробелов и разрывов строк?

Новичок и java.util.Scanner
Начал учить java и не совсем понимаю, что происходит. import java.util.Scanner; import java.util.Random; public class...

Видит java.lang.String , но не видит java.util.Scanner
Столкнулся с проблемой, есть два импорта: java.lang.String и java.util.Scanner. Оба прописаны в классе с main. Когда создаю другие классы -...

6
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
01.11.2020, 23:36
Лучший ответ Сообщение было отмечено Daniel1604 как решение

Решение

Пожалуйста:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
    internal class Program
    {
        public static long n, x, y, p,r,m,q,r1;
        public static bool finish=false;
        public static void Main()
        {
            int vivod =0;
            Console.WriteLine("Введите простое число p для проверки простоты числа M(p): ");
            int p = int.Parse(Console.ReadLine());
            if (simplycheck(p) == 1) {
                Console.WriteLine("Введенное число p не простое!");
            } else if (simplycheck(p) == 2) {
                Console.WriteLine("n = " + x + "*" + x);
            } else if (simplycheck(p) == 3) {
                Console.WriteLine("n = " + (x - y) + "*" + (x + y));
            } else if (simplycheck(p) == 0)
            {
                r1 = (long) ((Math.Pow(2, (p / 2.0)) - 1) / (2 * p));
                m = (long) (Math.Pow(2, p) - 1);
                for (r = 1; r <= r1; r++)
                {
                    n = 0;
                    q = 0;
                    while (q < m)
                    {
                        q = (long) (r * (Math.Pow(2, n + 1)) + 1);
                        if (vich(2, p, q) == 1)
                        {
                            Console.WriteLine("Найден наименьший делитель q = " + q);
                            Console.WriteLine("Число Мерсенна M(" + p + ") не является простым.");
                            vivod = 1;
                            finish = true;
                            break;
                        }
                        else
                        {
                            n++;
                            break;
                        }
                    }
 
                    if (finish == true)
                    {
                        break;
                    }
                }
 
                if (vivod == 1)
                {
                }
                else
                {
                    Console.WriteLine($"Число Мерсенна M(" + p + ") является простым.");
                }
            }
        }
        public static long simplycheck(long n) {
            int z=0,w=0;
            if (n%2==0){
                return 1;
            }
            else {
                x= (long) Math.Sqrt(n);
                if ((x*x)==n){
                    return 2;
                }
                else {
                    x++;
                    while ((z | w)!=1){
                        if (x==((n+1)/2)){
                            z=1;
                            return 0;
                        } else {
                            long check = x*x-n;
                            y=(long)Math.Sqrt(check);
                            if ((y*y)==check){
                                w=1;
                                return 3;
                            } else {
                                x++;
                            }
                        }
                    }
                }
            }
            return 4;
        }
        public static long vich (long a, long k, long n) {
            long p1 =1;
            while (k!=0){
                if (k%2!=0){
                    p1=(a*p1)%n;
                    k=(k-1)/2;
                } else {
                    k=k/2;
                }
                a=(a*a)%n;
            }
            return p1;
        }
    }
Но это какой-то говнокод.
0
0 / 0 / 0
Регистрация: 19.12.2018
Сообщений: 13
01.11.2020, 23:56  [ТС]
randok,
не компилирует, не знаешь как исправить?
Миниатюры
Портировать код Java в С# (import java.util.Scanner)  
0
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
01.11.2020, 23:59
C#
1
using System;
1
0 / 0 / 0
Регистрация: 19.12.2018
Сообщений: 13
02.11.2020, 00:05  [ТС]
Спасибо большое
0
6 / 7 / 0
Регистрация: 09.05.2013
Сообщений: 148
02.11.2020, 07:52
vivod
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
02.11.2020, 07:59
Цитата Сообщение от o6m0p0k Посмотреть сообщение
vivod
читайте
Цитата Сообщение от randok Посмотреть сообщение
Но это какой-то говнокод.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.11.2020, 07:59
Помогаю со студенческими работами здесь

Считывание чисел через java.util.Scanner
Всем привет, я учусь программировать на JAVA. Подскажите как с помощью java.util.Scanner можно считывать числа? Я имею ввиду, скажем в...

Ошибка java.util.Scanner[delimiters=\p{javaW
Добрый день. Никак не могу избавиться от ошибки. Перерыл кучу форумов говорят ошибка ввода java.util.ScannerУспешно добавлен(а) ...

Ошибка import java util
Всем привет.Ситуация такая.Решил попробовать разработку под Android. Установил Android SDK, в его комплект входит eclipse и параллельно...

Ошибка в списке(список без import java.util)
Нашёл в просторах интернета интересную вещь package spisok; public class LinkList&lt;E&gt; { public static LinkList start =...

Ошибка reference to List is ambiguous; both interface java.util.List in package java.util and class java.awt.List in...
Почему кгда я загружаю пакеты awt, utill вместе в одной проге при обьявлении елемента List я ловлю такую ошибку. 'listTest.java':...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru